Both are 14-lead LGA 6-axis IMUs from TDK InVenSense, both speak I3C, I²C and SPI, and both sit in a 2.5 × 3.0 mm footprint. The differences that decide a design are four published numbers and one thing that is not on the front page at all.
From what we see, this comparison is asked constantly and answered rarely. On one flight-controller thread a buyer put the two parts side by side and the reply was blunt: "Can not tell you about the differences between 45686 and 42688."
The short version: the ICM-45686 trades noise for range, uses less current, carries four times the FIFO - and cannot be driven by an ICM-426xx driver.
That last point is the one that costs a board revision, and it is the reason this page exists rather than a spec table alone.
Decide on four dimensions in this order: register compatibility, angular range, noise budget, then power and FIFO. Everything else between these two parts is close enough to be a tie-breaker rather than a decision.
Note the order. Register compatibility is first because it is the only dimension that can force a firmware rewrite, and it is the one the published comparison tables leave out.
Noise and range are second and third because they are the trade the two parts are built around. The remaining differences are modest enough that a design rarely turns on them.
The two parts are electrically similar and register-incompatible. The ICM-42688-P uses bank switching: identity sits at 0x75 and the bank selector at 0x76, with registers spread across five banks.
The ICM-45686 has neither of those addresses. Its user bank runs to 0x5A and resumes at 0x72, which is where identity lives and returns 0xE9. Internal registers are reached indirectly through the IREG registers at 0x7C, 0x7D and 0x7E.
So a straight port doesn't fail loudly - it compiles.
The documented case is a flight-controller firmware that carried its bank-select writes across, wrote to an address the part doesn't define, and ended up with a calibration that stored nonsense and an attitude estimate that snapped back to level.
| Address | ICM-42688-P | ICM-45686 |
|---|---|---|
| 0x72 | not defined | WHO_AM_I - returns 0xE9 |
| 0x75 | WHO_AM_I | not defined |
| 0x76 | REG_BANK_SEL (bits 2:0) | not defined |
| 0x7C / 0x7D / 0x7E | bank 0 registers | IREG indirect access |
From what we see, this is the row that decides most of the projects that reach us. Buyers asking about the ICM-45686 have usually already compared the noise and range figures themselves. What they want confirmed is whether it drops into a design that already runs an ICM-426xx driver.
The footprint is a different story. Both are 14-lead LGA parts in the same 2.5 × 3.0 mm outline, so a board can often accept either. Only the height differs: 0.81 mm against 0.91 mm.
Which is why we put this dimension first. A layout swap is cheap. A firmware port isn't, and the published comparison tables don't mention it.
One page states the test rate and the other does not, so the headline comparison is not like for like. Both figures come from the manufacturer, and only one of them is conditioned.
Read the right-hand bar with its caveat attached. The ICM-45686 figure is published at a stated output data rate. The ICM-42688-P figure appears with no rate beside it on the same product page.
Break the 45686 down and the pattern holds: 360 µA for the gyroscope and 120 µA for the accelerometer at 1600 Hz, with a low-power accelerometer mode at 67 µA when it runs at 50 Hz.
For a battery-powered design that is a real gap, and it is still a comparison you should re-check at your own rate. Current scales with output data rate, so the honest question is what each part draws at the rate your loop actually uses.
Neither corner of that chart is the better part. Each one gives up one number to gain another, and which number you can afford to give up is a property of the application rather than of the silicon.
| Parameter | ICM-45686 | ICM-42688-P |
|---|---|---|
| Gyroscope Noise | 3.8 mdps/√Hz | 2.8 mdps/√Hz |
| Accelerometer Noise | 70 µg/√Hz | 70 µg/√Hz |
| Gyro Full-Scale Range | up to ±4000 dps | up to ±2000 dps |
| Accel Full-Scale Range | up to ±32 g | up to ±16 g |
| FIFO | up to 8 kB | 2 kB |
| 6-Axis Current, Low-Noise | 420 µA @1600 Hz | 0.88 mA, rate not stated |
| Gyro Current, Low-Noise | 360 µA @1600 Hz | 0.73 mA, rate not stated |
| Accel Current, Low-Noise | 120 µA @1600 Hz | 0.28 mA, rate not stated |
| Accel Current, Low-Power | 67 µA @50 Hz | not published |
| Output Data Rate | 1.5625 Hz to 6.4 kHz | 1.5625 Hz to 6.4 kHz |
| Package | 14-LGA, 0.81 × 2.50 × 3.00 mm | 14-LGA, 0.91 × 2.50 × 3.00 mm |
| Bus Interface | I3C 12.9 MHz, I²C 1 MHz, SPI 24 MHz | I3C 12.5 MHz, I²C 1 MHz, SPI 24 MHz |
| FSYNC Support | Yes | Yes |
| Supply Voltage | 1.71 to 3.6 V | 1.71 to 3.6 V |
| Operating Temperature | −40 to +85 °C | −40 to +85 °C |
| Identity Register | 0x72, returns 0xE9 | 0x75, banks via 0x76 |
| Datasheet | DS-000577 | DS-000347 |
Four rows carry the decision and the rest are effectively equal. Noise, range, FIFO and current separate the parts; interface, supply, temperature range and package family do not.
Choose it when the measurement range or the power budget is the constraint. Both point the same way, which is unusual in this class.
Choose it when angular rate is modest and the noise floor is the number you're fighting. It's also the pragmatic choice when the firmware already exists.
The on-chip motion feature lists are not the same length. Both parts carry TDK's APEX engine, and the ICM-45686 documents more functions inside it.
| On-chip function | ICM-45686 | ICM-42688-P |
|---|---|---|
| Pedometer, tilt, tap detection | Yes | Yes |
| Wake on motion, raise to wake/sleep | Yes | Yes |
| Significant motion detection | Yes | Yes |
| Free-fall detection | Yes | not listed |
| Low-g and high-g detection | Yes | not listed |
| Dual host plus auxiliary interface | Yes - UI + AUX | Host interface documented |
| External clock input | Yes | Yes |
"Not listed" is not the same as "not supported" - it means the feature does not appear on that part's published feature list, so treat it as unconfirmed rather than absent.
The two datasheets also sit at different maturities: DS-000577 is a revision 1.0 document, while DS-000347 is at revision 1.9. That says nothing about the silicon, but it does tell you which part has had more errata and clarification cycles behind it.
Because the difference that breaks projects is the one nobody publishes. We keep both register maps on hand, and the comparison we send with a quote includes the driver question, not just the spec table.
If your firmware already runs an ICM-426xx driver, we will say so before you order the 45686 - and if the port is small, we will point you at the failure mode to test for first rather than letting you find it on a board.
We stock both parts and quote them against the same requirement, so the range and noise trade can be priced as a decision instead of researched as a project.
Send us the rate you expect in operation, the shock environment and whether the firmware can be changed, and we will confirm which of the two fits and quote on your quantity.
A: Range and noise, traded against each other. The ICM-45686 reaches ±4000 dps and ±32 g with 3.8 mdps/√Hz of gyro noise. The ICM-42688-P stops at ±2000 dps and ±16 g with 2.8 mdps/√Hz.
A: Not without touching the firmware. The ICM-42688-P keeps identity at 0x75 with a bank selector at 0x76. The ICM-45686 has neither address, puts identity at 0x72 and reaches internal registers indirectly. The footprint, though, is the same family.
A: The ICM-42688-P, on the gyroscope. 2.8 mdps/√Hz against 3.8 mdps/√Hz. Their accelerometer noise is identical at 70 µg/√Hz, so the difference is entirely in the rate channel.
A: The ICM-45686, on both axes. It doubles the gyroscope to ±4000 dps and the accelerometer to ±32 g. The range is the reason its noise floor is higher - the two numbers come from the same design trade.
A: The ICM-45686, on the published figures. 420 µA for six axes at 1600 Hz, against 0.88 mA for the other part - but the ICM-42688-P figure is published without a stated output data rate, so re-check both at your own rate.
A: Same footprint family, different height. Both are 14-lead LGA parts measuring 2.50 × 3.00 mm. The ICM-45686 is 0.81 mm tall and the ICM-42688-P is 0.91 mm, so a 0.1 mm difference is the only mechanical change.
A: It depends on the airframe, which is why the forum answers stall. If rates stay under ±2000 dps and the noise floor matters, the ICM-42688-P. If the frame sees higher rates or runs on a tight power budget, the ICM-45686.
A: Yes, and the difference is structural. One driver writes a bank selector; the other must not, because that address is not defined on the part. Copying one driver onto the other part is the documented way to break calibration.
A: TDK's name for the gyroscope architecture in the ICM-45686. The manufacturer describes it as an always-on gyroscope with better vibration rejection, temperature stability and reduced sensor-to-sensor coupling. It is one of the reasons the part reaches the wider range.
A: Several parts share the identity address and differ by the value returned. The 45605, 45605S, 45686, 45686S and 45688P all answer at 0x72, so a driver should compare the value rather than merely getting a reply. We quote the family on request.





