<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Having Issue with Free Fall Detection in MMA8451Q accelerometer sensor in Sensors</title>
    <link>https://community.nxp.com/t5/Sensors/Having-Issue-with-Free-Fall-Detection-in-MMA8451Q-accelerometer/m-p/1001573#M5982</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I am using the nRF51822 MCU&amp;nbsp; and MMA8451Q Accelerometer sensor to detect free fall, I have referred Application note and &lt;STRONG&gt;I am able to detect a free fall if I drop a sensor from a particular height&lt;/STRONG&gt;,&amp;nbsp; also I am getting free-fall interrupt when I tilt the sensor around X-axis.&amp;nbsp; I have also &lt;STRONG&gt;disabled free fall along the x-axis and y-axis&amp;nbsp; from FF_MD_CONFIG Register ;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I need free-fall detection only when I drop a sensor from a height, not when I tilt the sensor around the x-axis&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;here is my free-fall detection configuration settings&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;free_fall_init()&lt;BR /&gt; {&lt;BR /&gt; uint8_t data[2];&lt;BR /&gt; uint8_t temp;&lt;BR /&gt; //Put the device in standby mode&lt;BR /&gt; uint8_t CTRL_REG1 = 0x2A;&lt;BR /&gt; data[0]= CTRL_REG1;&lt;BR /&gt; data[1]= 0x20;&lt;BR /&gt; send(data);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//freefall/motion configuration register &lt;BR /&gt; uint8_t FF_MD_CONFIG = 0x15;&lt;BR /&gt; data[0]= FF_MD_CONFIG;&lt;BR /&gt; data[1]= 0xA0;&lt;BR /&gt; send(data);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; // setting threshould &lt;BR /&gt; uint8_t THR_REGISTER = 0x17;&lt;BR /&gt; data[0]= THR_REGISTER;&lt;BR /&gt; data[1]= 0x03;&lt;BR /&gt; send(data);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; // setting debounce counter&lt;BR /&gt; uint8_t DEBOUNCE_REGISTER = 0x18;&lt;BR /&gt; data[0]= DEBOUNCE_REGISTER;&lt;BR /&gt; data[1]= 0x06;&lt;BR /&gt; send(data);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; // Enable motion/freefall interrupt function&lt;BR /&gt; uint8_t INT_ENABLE = 0x2D;&lt;BR /&gt; data[0]= INT_ENABLE;&lt;BR /&gt; data[1]=0x04;&lt;BR /&gt; send(data);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; //Route the Motion/Freefall Interrupt to INT2 hardware pin&lt;BR /&gt; uint8_t INT_2 = 0x2E;&lt;BR /&gt; data[0]= INT_2;&lt;BR /&gt; data[1]= 0x00;&lt;BR /&gt; send(data);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; //put the device in active mode&lt;BR /&gt; temp = read(&amp;amp;CTRL_REG1);&lt;BR /&gt; temp |= 0x01;&lt;BR /&gt; data[0]=CTRL_REG1;&lt;BR /&gt; data[1]= temp;&lt;BR /&gt; send(data);&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;here is my Interrupt handler&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void Interrupt2_handler(nrf_drv_gpiote_pin_t pin, nrf_gpiote_polarity_t action)&lt;BR /&gt;{ &lt;BR /&gt; nrf_gpiote_event_clear(NRF_GPIOTE_EVENTS_IN_0); // clearing interrupt flag&lt;BR /&gt;uint8_t system_interrupt&amp;nbsp; = read(&amp;amp;SYSTEM_INT); // register 0x0C&lt;BR /&gt; status = read(&amp;amp;FF_STATUS); // reading FF_MD_STATUS register to enable next interrupt&amp;nbsp;&lt;BR /&gt;dropped = 0x01;&lt;BR /&gt; accelerometer_dropped_update(&amp;amp;m_acc,dropped); // notifying client through notification&amp;nbsp;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;i dont want free fall detection interrupt when i tilt the sensor along&amp;nbsp; x axis&amp;nbsp;&lt;/P&gt;&lt;P&gt;does any one hase solution for this problem ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thank you&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 03 Feb 2026 22:00:27 GMT</pubDate>
    <dc:creator>punitchotaliya</dc:creator>
    <dc:date>2026-02-03T22:00:27Z</dc:date>
    <item>
      <title>Having Issue with Free Fall Detection in MMA8451Q accelerometer sensor</title>
      <link>https://community.nxp.com/t5/Sensors/Having-Issue-with-Free-Fall-Detection-in-MMA8451Q-accelerometer/m-p/1001573#M5982</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I am using the nRF51822 MCU&amp;nbsp; and MMA8451Q Accelerometer sensor to detect free fall, I have referred Application note and &lt;STRONG&gt;I am able to detect a free fall if I drop a sensor from a particular height&lt;/STRONG&gt;,&amp;nbsp; also I am getting free-fall interrupt when I tilt the sensor around X-axis.&amp;nbsp; I have also &lt;STRONG&gt;disabled free fall along the x-axis and y-axis&amp;nbsp; from FF_MD_CONFIG Register ;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I need free-fall detection only when I drop a sensor from a height, not when I tilt the sensor around the x-axis&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;here is my free-fall detection configuration settings&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;free_fall_init()&lt;BR /&gt; {&lt;BR /&gt; uint8_t data[2];&lt;BR /&gt; uint8_t temp;&lt;BR /&gt; //Put the device in standby mode&lt;BR /&gt; uint8_t CTRL_REG1 = 0x2A;&lt;BR /&gt; data[0]= CTRL_REG1;&lt;BR /&gt; data[1]= 0x20;&lt;BR /&gt; send(data);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//freefall/motion configuration register &lt;BR /&gt; uint8_t FF_MD_CONFIG = 0x15;&lt;BR /&gt; data[0]= FF_MD_CONFIG;&lt;BR /&gt; data[1]= 0xA0;&lt;BR /&gt; send(data);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; // setting threshould &lt;BR /&gt; uint8_t THR_REGISTER = 0x17;&lt;BR /&gt; data[0]= THR_REGISTER;&lt;BR /&gt; data[1]= 0x03;&lt;BR /&gt; send(data);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; // setting debounce counter&lt;BR /&gt; uint8_t DEBOUNCE_REGISTER = 0x18;&lt;BR /&gt; data[0]= DEBOUNCE_REGISTER;&lt;BR /&gt; data[1]= 0x06;&lt;BR /&gt; send(data);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; // Enable motion/freefall interrupt function&lt;BR /&gt; uint8_t INT_ENABLE = 0x2D;&lt;BR /&gt; data[0]= INT_ENABLE;&lt;BR /&gt; data[1]=0x04;&lt;BR /&gt; send(data);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; //Route the Motion/Freefall Interrupt to INT2 hardware pin&lt;BR /&gt; uint8_t INT_2 = 0x2E;&lt;BR /&gt; data[0]= INT_2;&lt;BR /&gt; data[1]= 0x00;&lt;BR /&gt; send(data);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; //put the device in active mode&lt;BR /&gt; temp = read(&amp;amp;CTRL_REG1);&lt;BR /&gt; temp |= 0x01;&lt;BR /&gt; data[0]=CTRL_REG1;&lt;BR /&gt; data[1]= temp;&lt;BR /&gt; send(data);&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;here is my Interrupt handler&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void Interrupt2_handler(nrf_drv_gpiote_pin_t pin, nrf_gpiote_polarity_t action)&lt;BR /&gt;{ &lt;BR /&gt; nrf_gpiote_event_clear(NRF_GPIOTE_EVENTS_IN_0); // clearing interrupt flag&lt;BR /&gt;uint8_t system_interrupt&amp;nbsp; = read(&amp;amp;SYSTEM_INT); // register 0x0C&lt;BR /&gt; status = read(&amp;amp;FF_STATUS); // reading FF_MD_STATUS register to enable next interrupt&amp;nbsp;&lt;BR /&gt;dropped = 0x01;&lt;BR /&gt; accelerometer_dropped_update(&amp;amp;m_acc,dropped); // notifying client through notification&amp;nbsp;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;i dont want free fall detection interrupt when i tilt the sensor along&amp;nbsp; x axis&amp;nbsp;&lt;/P&gt;&lt;P&gt;does any one hase solution for this problem ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thank you&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Feb 2026 22:00:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/Having-Issue-with-Free-Fall-Detection-in-MMA8451Q-accelerometer/m-p/1001573#M5982</guid>
      <dc:creator>punitchotaliya</dc:creator>
      <dc:date>2026-02-03T22:00:27Z</dc:date>
    </item>
    <item>
      <title>Re: Having Issue with Free Fall Detection in MMA8451Q accelerometer sensor</title>
      <link>https://community.nxp.com/t5/Sensors/Having-Issue-with-Free-Fall-Detection-in-MMA8451Q-accelerometer/m-p/1001574#M5983</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Punit,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you have only the Z-axis enabled and rotate the sensor along the X or Y-axis, then you always get a state when the Z-axis acceleration value is lower than the threshold value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In order to avoid generating the freefall interrupt in such a case, you need to enable also the X and Y-axis (FF_MT_CFG = 0xB8).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it helps!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Tomas&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="border: 1pt none windowtext; font-weight: inherit; font-size: 9pt; padding: 0in;"&gt;PS:&amp;nbsp;If my answer helps to solve your question, please mark it as "Correct" or “Helpful”. Thank you.&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Dec 2019 09:10:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/Having-Issue-with-Free-Fall-Detection-in-MMA8451Q-accelerometer/m-p/1001574#M5983</guid>
      <dc:creator>TomasVaverka</dc:creator>
      <dc:date>2019-12-20T09:10:31Z</dc:date>
    </item>
  </channel>
</rss>

