@BSTRobin, Three months after I tell you your product does not perform as documented, you send me a beginner's guide? Really, @BSTRobin? In another thread, I documented a different problem with the logical combination of GEN1/GEN2, and you completely ignored it, asking instead, "What functions does your product need?" Really, @BSTRobin? @BSTRobin, I spent many hours analyzing and documenting these problems in your chip/documentation. Now, three months later, you write back with "you could see it from data sheet"? YOUR DATASHEET IS WRONG. That's what I have been telling you. This is the second time you have completely ignored what I am saying, @BSTRobin. Honestly, @BSTRobin, isn't this your job? It isn't mine, and yet here I am, troubleshooting your product for you, again. When an experienced developer informs you about deep flaws in your silicon, don't ever respond with "What functions does your product need?" and send a link to a beginner's guide. That response insults my intelligence as a product designer, and it damages your company's reputation. I have posted in three threads about the BMA400. In each case, I identified a different function that does not work as advertised: The Orientation Changed interrupt uses AND instead of OR when evaluating the axes. (see thread) The GEN1/GEN2 interrupt, using manual or one-time reference updates, has the logical ALL/ANY reversed. (see thread ) This thread, in which the GEN1/GEN2 interrupt in one-time mode does not update the reference value after firing. The other moderator, @Vincent, understood what I wrote about the Orientation Changed interrupt, and admitted that there was a problem in the silicon. Your responses, @BSTRobin, have been insufficient, showing very little understanding of the product. Okay, let's do it your way. Here's a screnshot of the datasheet, with a function outlined in red. This function does not work. Try it. Set up a generic interrupt with "one-time" update. Read the reference values. When the interrupt triggers, read the reference values. They have not changed. They were not "updated after triggering the interrupt". Please, please, @BSTRobin, do your job. If you can understand that these problems are real, then you will understand that Bosch should make a BMA400-B that fixes them. At very least, the BMA400 product documentation should describe these issues as "known bugs". Your customers are skilled engineers. We are extremely competent at product design. To be effective at our jobs, we must be able to TRUST THE DATASHEET. We select products (like this one) because they perform certain functions. When those functions don't work as described, these flaws can cause hundreds of hours of misery and lost productivity. Circuit boards are designed and produced, parts are purchased, prototypes assembled; when your products do not perform functions as described, the costs add up to many thousands of dollars. The BMA400 is a remarkable device with unique abilities, and we will continue to use it -- but with trepidation. We do not trust the datasheet, and we are extremely disappointed that Bosch does not seem to care. On a scale of 1 to 10, Bosch gets an "10" for design, a "7" for implementation, and a "2" for product support. Bosch can do better than this. I do not expect you to reply to this post, @BSTRobin. I have been rude, but you deserve to hear this criticism. If other potential users of the BMA400 read this post, and if it helps them to understand the chip's abilities and shortcomings, then this thread will have achieved its purpose.
... View more