<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Calculating distance ?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/70336/calculating-distance</link><description>Dear Member, 
 I want to calculate distance I have traveled, 
 I saw variables as 
 #define WHEEL_CIRCUMFERENCE 2070 /**&amp;lt; Bike wheel circumference [mm] */ 
 static uint32_t calculate_speed(int32_t rev_cnt, int32_t evt_time) 
 
 distance = rev_cnt * (WHEEL_CIRCUMFERENCE</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 14 Jan 2021 08:18:25 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/70336/calculating-distance" /><item><title>RE: Calculating distance ?</title><link>https://devzone.nordicsemi.com/thread/289082?ContentTypeID=1</link><pubDate>Thu, 14 Jan 2021 08:18:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:06e79ebb-990d-4120-8c6d-e3f59b3064f7</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;I&amp;#39;m afraid this is something you have to debug yourself. total_distance = distance[0]+distance[n]&amp;nbsp; is supposed to be 64m + 52m, right? In that case, I&amp;#39;d suggest you start by checking what happens to distance[0]. Maybe it&amp;#39;s always getting overwritten by the current distance..&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Calculating distance ?</title><link>https://devzone.nordicsemi.com/thread/288968?ContentTypeID=1</link><pubDate>Wed, 13 Jan 2021 14:47:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:08cf31dc-ccd6-418e-869d-00dd1f157628</guid><dc:creator>RixtronixLAB</dc:creator><description>&lt;p&gt;From my observation : &lt;/p&gt;
&lt;p&gt;nfo&amp;gt; app: Computed distance raw: 93984 m&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;===&lt;/p&gt;
&lt;p&gt;nfo&amp;gt; app: Computed distance raw: 94048 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;===&lt;/p&gt;
&lt;p&gt;nfo&amp;gt; app: Computed distance value: 64 m &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;=== this is right&lt;/p&gt;
&lt;p&gt;nfo&amp;gt; app: Computed distance raw: 94048 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;===&lt;/p&gt;
&lt;p&gt;nfo&amp;gt; app: Computed distance raw: 94100 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;===&lt;/p&gt;
&lt;p&gt;nfo&amp;gt; app: Computed distance value: 52 m &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;=== this is right 94100 - 94048 but total distance suppose to be 64m + 52m .....&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;code : &lt;br /&gt;distance = (m_speed_calc_data.acc_rev_cnt&amp;nbsp; - m_speed_calc_data.prev_acc_rev_cnt)*(WHEEL_CIRCUMFERENCE/1000);&lt;br /&gt;&lt;br /&gt;total_distance = distance[0]+distance[n] ?&lt;/p&gt;
&lt;p&gt;Any clues ? thanks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Calculating distance ?</title><link>https://devzone.nordicsemi.com/thread/288692?ContentTypeID=1</link><pubDate>Tue, 12 Jan 2021 14:33:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e4dd3db1-19b1-41d4-b6a0-5d437f94a005</guid><dc:creator>RixtronixLAB</dc:creator><description>&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/2021_2D00_01_2D00_12-22_5F00_42_5F00_33_2D00_D00001163_5F002D005F00_ANT_2B005F00_Device_5F00_Profile_5F002D005F00_Bicycle_5F00_Speed_5F00_and_5F00_Cadence_5F00_2.1.pdf-_2D00_-Adobe-Acro.png" /&gt;Is &amp;nbsp;m_speed_calc_data.acc_rev_cnt&amp;nbsp; += rev_cnt - m_speed_calc_data.prev_rev_cnt; equal to this ?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Calculating distance ?</title><link>https://devzone.nordicsemi.com/thread/288690?ContentTypeID=1</link><pubDate>Tue, 12 Jan 2021 14:25:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:27377f54-6a89-4376-aed5-f3587849a869</guid><dc:creator>RixtronixLAB</dc:creator><description>&lt;p&gt;I used this equation :&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;distance = ((rev_cnt * (WHEEL_CIRCUMFERENCE/1000)))/135; //divide by 1000 for per metre&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //135 is the coefficient to m distance&lt;/p&gt;
&lt;p&gt;and it looks like more accurate comparing wth my Garmin Edge,&lt;/p&gt;
&lt;p&gt;app: Computed distance value: 685 m&lt;br /&gt; &lt;/p&gt;
&lt;p&gt;in Garmin Edge is 627 m&lt;/p&gt;
&lt;p&gt;How do you reckon ? thanks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Calculating distance ?</title><link>https://devzone.nordicsemi.com/thread/288674?ContentTypeID=1</link><pubDate>Tue, 12 Jan 2021 13:52:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b43eb479-ce65-4c90-8ec5-2bbc80354bbe</guid><dc:creator>RixtronixLAB</dc:creator><description>&lt;p&gt;You mean, I use Garmin device to check the distance and compare with the code ? thanks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Calculating distance ?</title><link>https://devzone.nordicsemi.com/thread/288659?ContentTypeID=1</link><pubDate>Tue, 12 Jan 2021 13:38:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ef09c8ca-97bd-43b9-b674-c4ae6bd7f1fd</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I meant to say that the &amp;#39;rev_cnt&amp;#39; input value had to be wrong as you didn&amp;#39;t get the expected result. I&amp;#39;d suggest you try to test with fixed inputs to verify the function. E.g., check if you get the distance to be ~2000 m if you pass rev_cnt=1000 to calculate_speed()&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Calculating distance ?</title><link>https://devzone.nordicsemi.com/thread/288657?ContentTypeID=1</link><pubDate>Tue, 12 Jan 2021 13:26:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:667768dc-8ef5-4279-90d2-2b0e33578e0a</guid><dc:creator>RixtronixLAB</dc:creator><description>&lt;p&gt;Hi Vidar,if &amp;#39;rev_cnt&amp;#39; must be wrong, which variable should I use for calculating distance based on tyre size and tyre revolution&amp;nbsp; ?&lt;/p&gt;
&lt;p&gt;Complete function I see from main.c&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;static uint32_t calculate_speed(int32_t rev_cnt, int32_t evt_time)
{
    static uint32_t computed_speed   = 0;
     //distance = (rev_cnt * (WHEEL_CIRCUMFERENCE/1000)); //divide by 1000 for per metre
			
    if (rev_cnt != m_speed_calc_data.prev_rev_cnt)
    {
        m_speed_calc_data.acc_rev_cnt  += rev_cnt - m_speed_calc_data.prev_rev_cnt;
        m_speed_calc_data.acc_evt_time += evt_time - m_speed_calc_data.prev_evt_time;

        /* Process rollover */
        if (m_speed_calc_data.prev_rev_cnt &amp;gt; rev_cnt)
        {
            m_speed_calc_data.acc_rev_cnt += UINT16_MAX + 1;
        }
        if (m_speed_calc_data.prev_evt_time &amp;gt; evt_time)
        {
            m_speed_calc_data.acc_evt_time += UINT16_MAX + 1;
        }

        m_speed_calc_data.prev_rev_cnt  = rev_cnt;
        m_speed_calc_data.prev_evt_time = evt_time;

        computed_speed = SPEED_COEFFICIENT *
                         (m_speed_calc_data.acc_rev_cnt  - m_speed_calc_data.prev_acc_rev_cnt) /
                         (m_speed_calc_data.acc_evt_time - m_speed_calc_data.prev_acc_evt_time);

        m_speed_calc_data.prev_acc_rev_cnt  = m_speed_calc_data.acc_rev_cnt;
        m_speed_calc_data.prev_acc_evt_time = m_speed_calc_data.acc_evt_time;
    }

    return (uint32_t)computed_speed;
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Calculating distance ?</title><link>https://devzone.nordicsemi.com/thread/288628?ContentTypeID=1</link><pubDate>Tue, 12 Jan 2021 12:10:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:42f56742-74c0-48dd-b9eb-d4291ec29e60</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;The distance function looks to be correct, so I think &amp;#39;rev_cnt &amp;#39; must be wrong.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>