Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 
    SOLVED

    BMA456 offset compensation

    BMA456 offset compensation

    Andy_253
    New Poster

    Hi,

    I use the BMA456 sensor.

    I would like to use the API bma4_perform_accel_foc, for calculating the foc for all 3 axis - x,y,z.

    (I got a code from git hub)

    The API recieves the struct : bma4_accel_foc_g_value.

    I thought to declare - const struct bma4_accel_foc_g_value accel_g_value = {1, 1, 1, 0},  so all three axis will be calculated, but in the API code I see the following condition :

    if (((ABS(accel_g_value->x) + ABS(accel_g_value->y) + ABS(accel_g_value->z)) == 1) &&
    ((accel_g_value->sign == 1) || (accel_g_value->sign == 0)))

    which makes me think I should call one axis at a time (also in related APIs  it seems like that).

    but if so - will it be saved corrctly at the NVM? won't each call run over the previous values? 

    I don't understand what is the proper input to the accel_g_value

    Thanks in advance,

    14 REPLIES 14

    Hi BSTRobin,

    I tested the FOC with default range(4g) and accel_g_value are {1, 0, 0, 1}

    But after FOC, the acc.x value didn't reach to '0'.

    I don't think that the purpose of FOC is to make acc value to '0'. It can find the axis of gravity and make it to 8192. Am I correct?

    I added some debug message in perform_accel_foc function as below picture.

    And then I got a debug message as below.

    Do you think, the FOC function working well on my device?

    I'd like to know your opinion. 

    Best Regards,

    Andy

    Andy_253_0-1641281068812.png

    Andy_253_1-1641281166106.png

     

     

    Hi BSTRobin,

    Could you please reply the my previous question?

    I'm waiting for your answer.

    Best Regards,

    Andy

    BSTRobin
    Community Moderator
    Community Moderator

    Hello Andy_253,

    Let us to further check and give you feedback later.

    BSTRobin
    Community Moderator
    Community Moderator

    Hello Andy_253,

    From your log data, FOC run well on your side.

    For your test, X axis should be close to 8192 after FOC, not should be 0.

    Thanks for your confirmation.

    Best Regards,

    Andy

     

    Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist