BNO085 vs LSM6DSOX+LIS3MDL

General project help for Adafruit customers

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
pjforde1978
 
Posts: 21
Joined: Thu Oct 30, 2014 12:48 am

BNO085 vs LSM6DSOX+LIS3MDL

Post by pjforde1978 »

Hey folks, I'm trying to navigate the sea of IMU options. It's been a bit of a bumpy ride so far, with multiple "best", discontinued NXPs and the IMU drift comparison FAQ not including the BNO085.

My use case is that I want to attach a microprocessor to my guitar and tilt it during performance to create a kinetic expression "pedal".

I *think* that I have things narrowed down to the https://www.adafruit.com/product/4565 or the https://www.adafruit.com/product/4754.

I understand that the BNO085 does calculations on-chip and has a really impressive API, while the ST package requires performing the calculations in software, which is fine since I'm planning to use a decently powerful Feather.

They are roughly the same price (BNO085 is $5 more) and the LSM6DSOX is available as a FeatherWing, which would certainly simplify prototyping. (Why no BNO085 FeatherWing?)

What's more difficult to figure out is which path provides better results. I don't need industrial accuracy, but I'd prefer it not drift wildly during an hour of jumping around on stage. TIA!

User avatar
pjforde1978
 
Posts: 21
Joined: Thu Oct 30, 2014 12:48 am

Re: BNO085 vs LSM6DSOX+LIS3MDL

Post by pjforde1978 »

I just saw that y'all have added https://www.adafruit.com/product/5543 aka the LSM6DS3TR-C.

I cannot stress enough how hard it is for us junior geeks to differentiate between all of the IMU options you offer. Part of the problem is that the products are superficially similar, so your content team cuts and pastes large amounts of boilerplate text every time a new SKU is added.

In other words, the IMUs are the edgy, angular alternative post-punk of the component world. There's only so many ways to describe positional measurement. I have real sympathy, here.

I do have some suggestions on how things could get better:
1. Create a 2nd-level tier index page for your IMUs, and keep it up to date with a short-list of your current curated top picks for new projects, for featherwing projects, for budget projects, for robot vacuum projects.
2. Consider creating a timeline showing when each IMU was introduced/discontinued.
3. Introduce some kind of objective quality/drift score that you can cite on the product pages for each SKU, so people can make an objective comparison. The only way for a mortal to compare them today is to find the IMU with the highest Adafruit product SKU. Harsh but true.
4. Commit to updating the product pages for older IMUs with links to newer IMUs that they "probably" would like better.
5. A refresh to https://learn.adafruit.com/comparing-gy ... datasheets would be rad.

True story: I literally just found <url>https://learn.adafruit.com/adafruit-sen ... copes</url> and I've been thinking about and searching for nothing but Adafruit IMUs for two days. It doesn't reference the BNO085. IMU index page, please!

User avatar
adafruit_support_mike
 
Posts: 67446
Joined: Thu Feb 11, 2010 2:51 pm

Re: BNO085 vs LSM6DSOX+LIS3MDL

Post by adafruit_support_mike »

pjforde1978 wrote: Thu Feb 02, 2023 1:58 am I cannot stress enough how hard it is for us junior geeks to differentiate between all of the IMU options you offer.
To a first approximation, it doesn't matter.

The reason you can't choose a device is that you don't have requirements that make the differences among them important. Some projects need high resolution but won't see a wide range of force. Other projects need to be able to measure high-gee forces and can afford less resolution. Some need fast readings more than they need fine detail.

The first step in device selection is to eliminate the candidates that can't do something you need.

The second step is to do a quick ranking: pick a candidate at random, call it the 'pivot', and temporarily assume that's the one you'll use for your project. Then go through the other candidates and ask, "is there a specific reason to replace the pivot with this one?"

If you don't end up with a list of candidates you prefer over the pivot, the selection process is done. Use the pivot.

If you do end up with a list of candidates you prefer, eliminate the pivot and any candidates not on that list. Go through the list of preferred candidates and write down the features of each you consider desirable. Then create a matrix with the candidates as rows and all the desirable features as columns. Rate every candidate in terms of every feature, and look for the ones with the best overall scores.

At that point you should have reduced the list of candidates enough that you'll be able to start making design decisions, which are basically tradeoffs between competing solutions that give you as much of what you want and as little of what you don't want.

User avatar
gammaburst
 
Posts: 1015
Joined: Thu Dec 31, 2015 12:06 pm

Re: BNO085 vs LSM6DSOX+LIS3MDL

Post by gammaburst »

I'd like to see Adafruit create an IMU comparison table (product selection guide) with features/specs/price/availability across the top and product offerings down the side. Add columns that answer common customer questions. Add links to product datasheets, learning guides, Arduino/CircuitPython support, and Adafruit shopping pages. Folks such as pjforde1978 could use the table to rapidly identify candidate products and weed-out unsuitable items, rather than spending hours/days hunting down and studying manufacturer datasheets (some are awful), app notes, etc. One wise person creates/maintains the table, many customers benefit.

I'd especially like to see such a table for Adafruit's microcontroller offerings.

User avatar
pjforde1978
 
Posts: 21
Joined: Thu Oct 30, 2014 12:48 am

Re: BNO085 vs LSM6DSOX+LIS3MDL

Post by pjforde1978 »

I sat on this for a few days, because I wanted to make sure that I didn't reply in anger. It's always good to ask yourself if you are missing what the experienced person is trying to convey.

Here's the thing: in the existing, out-of-date Adafruit IMU articles I link to, the authors openly acknowledge that the data is inconsistent, misleading and hard to compare. Even the articles that attempt to provide a pivot-style comparison were written 5+ years ago and don't include some of the most important newer products, such as the BNO085 breakout.

I appreciate @adafruit_support_mike replying at all. For a few days, it didn't seem like I was going to get any bites. Everyone is busy with their stuff. I get it.

Does it help me to suggest that I rate all available options with figure skating style baselines? It might, if most of my query wasn't a literal explanation of the steps I took to go through all of the Adafruit IMU product pages and try to arrive at a confident conclusion. I wouldn't be fussed if I hadn't taken great pains to do the work and then describe it in detail.

It seems as though my suggestions - distilled read as "update your old SKU pages to point to newer SKUs when superior options make more sense" and "create a category index so that you can convey the high-level explanation of why there's so many options and maybe make some recommendations that will be good for most people" - did not merit consideration. That's too bad.

In the end, I picked up a BNO085 because it seemed like on-chip sensor fusion is a win. I haven't gotten it to work with my QT PY ESP32-C3, yet... but I have optimism.

User avatar
adafruit_support_mike
 
Posts: 67446
Joined: Thu Feb 11, 2010 2:51 pm

Re: BNO085 vs LSM6DSOX+LIS3MDL

Post by adafruit_support_mike »

Thank you for taking the time to make a thoughtful reply.

To go further into my own point, the work we do here in the forums cultivates a strong sense that documentation needs to be functional. I've read thousands of datasheets, and am immediately familiar with at least a couple hundred. They exist to help people find answers, and some do the job better than others.

From that perspective, a product matrix has to be a functional document. Its creation has to be driven by a list of responses to: "what question do you want to answer using information found in this matrix?"

For the frequently requested case of a general matrix, the design problem is, 'describe the mental process of going from "I have no idea what device to choose" to "I'm confident I chose the right device" using information found in a product matrix."

Based on my own experience doing hardware design, and on my experience helping people navigate the options in their own designs, I know the answers to those questions tend to be context-sensitive and open ended. They aren't served well by a closed-form tool like a product matrix. They tend to be better served by a process, like the one I described previously.

As such, I do consider a request for a product matrix to be an ill-posed question, and a member of an common family of errors in the specification process: trying to describe the properties of a solution in terms of products that already exist.

That's okay.. the only people who can generate well-posed questions all the time are domain experts, and then only because they've worked through all the known ways of asking ill-posed questions in that domain. Bohr wasn't kidding when he said, "an expert is a man who has made all the mistakes which can be made in a narrow field."

Having thus taken a strong position, I have an obligation to keep my own mind open to new information. I see this conversation as a process of working our way to common terms from which we can discuss the creation of documentation that will be useful. The fact that you hold a different opinion than mine means you aren't likely to share my blind spots.

If you're willing to continue the discussion, please consider the design questions I mentioned above: what questions do you want to answer using a matrix, and how would you use a matrix to gain confidence in the selection of a given device?

User avatar
sj_remington
 
Posts: 997
Joined: Mon Jul 27, 2020 4:51 pm

Re: BNO085 vs LSM6DSOX+LIS3MDL

Post by sj_remington »

"attach a microprocessor to my guitar and tilt it during performance to create a kinetic expression "pedal""

For this use case, just about any 3D accelerometer will work fine. The market is competitive, which is why all the recent offerings continue to improve and yet remain so similar. If you want to start out with a fine example of the current crop, I recommend the ISM330DHCX.

The correct equations for pitch and roll are given in https://wiki.dfrobot.com/How_to_Use_a_T ... lt_Sensing

For highest measurement accuracy (probably not required for your application), calibrate the accelerometer: https://thecavepearlproject.org/2015/05 ... r-arduino/

User avatar
gammaburst
 
Posts: 1015
Joined: Thu Dec 31, 2015 12:06 pm

Re: BNO085 vs LSM6DSOX+LIS3MDL

Post by gammaburst »

Ill-posed question!
Thanks for the good laugh, and insight into Adafruit's thinking.

A product table isn't the best first step for everyone, but many folks here know approximately what they need. A product table summarizes what's available.

I recently used Microchip's online table of about 1000 microcontrollers to find 4 suitable candidates in a few minutes. (The table has sorting and filtering ability.) I browsed the datasheets and chose the most suitable one.

A product table can also help when learning about a new product family. Look at the column headers, see new unfamiliar characteristics, go read about them, see how those characteristics vary over the product offerings, see interesting trends and correlations between columns. I appreciate extra columns for price, inception date, end-of-life date, development tools - stuff that's usually not in the datasheet.

User avatar
adafruit_support_mike
 
Posts: 67446
Joined: Thu Feb 11, 2010 2:51 pm

Re: BNO085 vs LSM6DSOX+LIS3MDL

Post by adafruit_support_mike »

gammaburst wrote: Sun Feb 12, 2023 3:28 pm Thanks for the good laugh, and insight into Adafruit's thinking.
e.g.: Be wary of investing significant time and effort creating a resource that:

- Has no clearly defined success condition
- Needs to be updated every time a new product is added in that category
- Will likely elict one of three responses:
- - People will glance at and say, "it doesn't solve my problem".
- - People will complain that it doesn't contain the specific parameter they care about
- - People will complain that it's too complicated

Another part of our thinking is, "nothing provides context better than doing the work", and we have an ideal set of conditions to apply that principle in this thread.

You create a list of parameters to include in a matrix. I'll do the legwork of collecting and arranging them. Then we'll solicit feedback from pjforde1978 -- and anyone else who wants to weigh in -- to see if it's the useful resource they want. Based on that information, we'll iterate.

User avatar
gammaburst
 
Posts: 1015
Joined: Thu Dec 31, 2015 12:06 pm

Re: BNO085 vs LSM6DSOX+LIS3MDL

Post by gammaburst »

Your suggestion is intriguing, but if you folks are wary of a sales tool that would certainly require ongoing updates and improvements, and unsure how to measure its effectiveness, and little enthusiasm, then let's not pursue this activity.

Locked
Please be positive and constructive with your questions and comments.

Return to “General Project help”