Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 

    Inactivity detection with BMA400

    Inactivity detection with BMA400

    baukespoelstra
    New Poster

    Hello,

    I'm trying to implement a low-power solution for my project with inactivity detection.

    The firmware is for a set of dice with NRF52805 as main processor. When the dice are thrown, BMA400 should wake up from low-power mode to normal mode, and when it is still on the table for set time and inactivity threshould it should wake up the NRF by a hardware interrupt pin.

    First I am just trying to get the inactivity interrupt to work. I found this article: https://community.bosch-sensortec.com/t5/Knowledge-base/Introduction-about-BMA400-Auto-Wakeup-and-Au... but can't get this to work for my board. I confirmed other examples from the sensor API to work fine.

    For now this is what I am testing with; but it keeps triggering the interrupt no matter what happens. I have attached main code. What best can I do to reach what I am aiming to do?

    Also I am open for suggestions on how to implement this in a different way. (eg activity or some other way of triggering) As long as it consumes as little power as possible 😉

    Thanks a lot!

    baukespoelstra_0-1655115329192.png

     

    3 REPLIES 3

    BSTRobin
    Community Moderator
    Community Moderator

    Hi baukespoelstra,

    You could refer attached example code to enable Auto Wakeup and Auto Low Power for your application.
    By default, the trigger of INT1 is a rising edge trigger. Ensure that your host can respond to the rising edge.

    Hi BSTRobin,

    Thanks for replying. Are you refering to  set_sensor_config function? I am a bit overwhelmed by your example code, but can see how auto low power and wake-up is set. I need the BMA to wake up from (in)acitivity after set time and trigger the host for it to ask for acceleration data. 

    I just can't get the interrupt mapping to a pin to work. The host can trigger on a rising edge. However, for now I am using an oscilloscope on INT1 and can't see anything happening.

    Hi baukespoelstra,

    Refer attached example code, you will get interrupt signal from INT1.

    BMA400_Activity_Change_Int test result.png

    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