2024-04-23 01:26 PM
I need to have a part that goes beyond +/-2000 dps. The new part LSM6DSV32X does just that (4000 dps). I'm hoping that it is software/register compatible with the LSM6DSO line of IMUs. That way I could just replace this part (pin compatible) and update the register for the range of the gyro and leave the remaining code the same.
Is that true? Can I do this?
2024-04-24 01:43 AM
Hi @DaveD ,
Welcome to ST Community!
It depends on which registers you are using. You could look on the datasheet to see if they have remained the same or changed.
2024-04-24 07:39 AM
The data sheet has 200 pages to it so that is a rather large effort to compare this part to others in its family of parts. Other manufacturers often have a section in their data sheets (or an app note) that explain the differences between parts in a family to allow a design engineer to avoid putting in extensive amounts of time on something that is already known by the manufacturer. Would it be possible to have the product manager write up what the differences are in the register set?
2024-04-24 08:12 AM
To be more specific, we already had an application where we moved from a LSM6DSO to an LSM6DSO32 and there were bugs in the ST provided driver that cost us a huge amount of time. I will try to go back into my archives to be more specific regarding the details on this past history but it is an "existence proof" that i could be signing myself up for another huge problem.
My goal is to see if there is a possibility that the register incompatibilities are a non-issue and I could use the same driver I have with the exception of writing the register to change the range of the gyro.
Any information you could provide on the product could save hours of design time.
thanks,
dave
2024-04-24 09:10 AM
Here is the information on the previous issues we had that has made us gunshy.
examples:
Forum post from issues
issues files against driver repo
https://github.com/STMicroelectronics/lsm6dso32-pid/issues?q=is%3Aissue+
issue we found
“We found one odd thing with the new FSM code where the number of programs is passed to the driver, the LSM6DSO driver took a value but the LSM6DSO32 driver wants a pointer to a uint8_t. Honestly looks like ST messed up porting their driver over because the pointer doesn’t make any sense.”
LSM6DSO and LSM6DSO32 have registers related to the accelerometer where the same bit pattern means different rates / ranges between the two parts. You also can’t tell them parts apart at runtime because they report the same ID register. We’re concerned about subtle differences like this that we miss if trying to use the old driver and then the number of bugs we found when trying to use STs driver.
2024-05-02 02:07 AM
Hi @DaveD ,
They are two different products and so there are obviously differences. I can try to help you if you give me more details about your application and what driver you are using. Also are you only interested in the differences for the accelerometer?
2024-05-02 07:32 AM
Here is the situation I am trying to resolve.
The LSM6DSO works fine in our application with the exception that the 2Kdps gyro range sometimes saturates. If the identical part existed with a 4Kdps the design would work perfectly.
The hopeful solution would be to upgrade to the LSM6DSO32 since it has 4Kdps range. I need no other new features from it in order to be successful. I am uninterested in any other new features at this point in time other than the increased range of the gyro.
So, my question is, can I use my updated/fixed LSM6DSO driver with an LSM6DSO32 (with the only modification being to change the gyro range) and have a drop in replacement.
Any help in answering this question would be appreciated.
dave
2024-05-02 08:15 AM
Hi @DaveD ,
I don't understand if you want to use an LSM6DSV32X (as written in the first message) or LSM6DSO32.