This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nrf52840 DK scanning issue

Hi All,

I have the strange issue with scanning. I have the project losely based on examples where I created peripheral adevrtising with 1s interval. This sends the custom adv packet with counter value. The issue is that central one stops receiving after a random while and then resumes or not after long while. Trying to solve it changed scanning timeout from 0 to 3000 and when it times out start scan again. The debug terminal shows that sometimes after scan start nothing is received at all - I filter it to one peripheral only.

<info> app: RSSI = -54 (dBm), Counter =  1658
<info> app: RSSI = -51 (dBm), Counter =  1659
<info> app: RSSI = -49 (dBm), Counter =  1660
<info> app: RSSI = -47 (dBm), Counter =  1661
<info> app: RSSI = -47 (dBm), Counter =  1662
<info> app: RSSI = -47 (dBm), Counter =  1663
<info> app: RSSI = -48 (dBm), Counter =  1665
<info> app: RSSI = -48 (dBm), Counter =  1668
<info> app: RSSI = -47 (dBm), Counter =  1669
<info> app: RSSI = -49 (dBm), Counter =  1670
<info> app: RSSI = -48 (dBm), Counter =  1671
<info> app: RSSI = -48 (dBm), Counter =  1672
<info> app: RSSI = -49 (dBm), Counter =  1673
<info> app: RSSI = -48 (dBm), Counter =  1674
<info> app: RSSI = -47 (dBm), Counter =  1675
<info> app: RSSI = -47 (dBm), Counter =  1676
<info> app: RSSI = -47 (dBm), Counter =  1677
<info> app: Scan timed out.
<info> app: Starting scan on 1Mbps.
<info> app: 
 Scanning Start

<info> app: Scan timed out.
<info> app: Starting scan on 1Mbps.
<info> app: 
 Scanning Start

<info> app: RSSI = -51 (dBm), Counter =  1698
<info> app: RSSI = -50 (dBm), Counter =  1699
<info> app: RSSI = -51 (dBm), Counter =  1700
<info> app: RSSI = -51 (dBm), Counter =  1701
<info> app: RSSI = -51 (dBm), Counter =  1702
<info> app: RSSI = -51 (dBm), Counter =  1703
<info> app: RSSI = -51 (dBm), Counter =  1704
<info> app: RSSI = -50 (dBm), Counter =  1705
<info> app: RSSI = -52 (dBm), Counter =  1706
<info> app: RSSI = -51 (dBm), Counter =  1707
<info> app: RSSI = -53 (dBm), Counter =  1708
<info> app: RSSI = -57 (dBm), Counter =  1709
<info> app: RSSI = -51 (dBm), Counter =  1710
<info> app: RSSI = -51 (dBm), Counter =  1711
<info> app: RSSI = -51 (dBm), Counter =  1712
<info> app: RSSI = -54 (dBm), Counter =  1713
<info> app: RSSI = -52 (dBm), Counter =  1715
<info> app: RSSI = -51 (dBm), Counter =  1717
<info> app: Scan timed out.
<info> app: Starting scan on 1Mbps.
<info> app: 
 Scanning Start

<info> app: RSSI = -52 (dBm), Counter =  1718
<info> app: RSSI = -49 (dBm), Counter =  1720
<info> app: RSSI = -49 (dBm), Counter =  1721
<info> app: RSSI = -48 (dBm), Counter =  1722
<info> app: RSSI = -49 (dBm), Counter =  1724
<info> app: RSSI = -50 (dBm), Counter =  1725
<info> app: RSSI = -51 (dBm), Counter =  1728
<info> app: RSSI = -48 (dBm), Counter =  1730
<info> app: RSSI = -51 (dBm), Counter =  1732
<info> app: RSSI = -48 (dBm), Counter =  1733
<info> app: RSSI = -48 (dBm), Counter =  1734
<info> app: RSSI = -48 (dBm), Counter =  1735
<info> app: RSSI = -48 (dBm), Counter =  1737
<info> app: Scan timed out.
<info> app: Starting scan on 1Mbps.
<info> app: 
 Scanning Start

<info> app: RSSI = -42 (dBm), Counter =  1738
<info> app: RSSI = -42 (dBm), Counter =  1739
<info> app: RSSI = -42 (dBm), Counter =  1740
<info> app: RSSI = -44 (dBm), Counter =  1741
<info> app: RSSI = -48 (dBm), Counter =  1742
<info> app: RSSI = -49 (dBm), Counter =  1744
<info> app: RSSI = -48 (dBm), Counter =  1745
<info> app: RSSI = -46 (dBm), Counter =  1746
<info> app: RSSI = -46 (dBm), Counter =  1747
<info> app: RSSI = -47 (dBm), Counter =  1748
<info> app: RSSI = -47 (dBm), Counter =  1749
<info> app: RSSI = -48 (dBm), Counter =  1750
<info> app: RSSI = -47 (dBm), Counter =  1752
<info> app: RSSI = -49 (dBm), Counter =  1753
<info> app: RSSI = -43 (dBm), Counter =  1754
<info> app: RSSI = -47 (dBm), Counter =  1755
<info> app: RSSI = -45 (dBm), Counter =  1756
<info> app: RSSI = -43 (dBm), Counter =  1757
<info> app: Scan timed out.
<info> app: Starting scan on 1Mbps.
<info> app: 
 Scanning Start

<info> app: RSSI = -45 (dBm), Counter =  1758
<info> app: RSSI = -45 (dBm), Counter =  1759
<info> app: RSSI = -44 (dBm), Counter =  1760
<info> app: RSSI = -44 (dBm), Counter =  1762
<info> app: RSSI = -44 (dBm), Counter =  1763
<info> app: RSSI = -44 (dBm), Counter =  1764
<info> app: RSSI = -44 (dBm), Counter =  1764
<info> app: RSSI = -44 (dBm), Counter =  1765
<info> app: RSSI = -44 (dBm), Counter =  1766
<info> app: RSSI = -44 (dBm), Counter =  1767
<info> app: RSSI = -44 (dBm), Counter =  1769
<info> app: RSSI = -44 (dBm), Counter =  1771
<info> app: RSSI = -44 (dBm), Counter =  1772
<info> app: RSSI = -44 (dBm), Counter =  1773
<info> app: RSSI = -44 (dBm), Counter =  1774
<info> app: RSSI = -44 (dBm), Counter =  1775
<info> app: RSSI = -44 (dBm), Counter =  1776
<info> app: RSSI = -44 (dBm), Counter =  1777
<info> app: RSSI = -43 (dBm), Counter =  1777
<info> app: Scan timed out.
<info> app: Starting scan on 1Mbps.
<info> app: 
 Scanning Start

<info> app: Scan timed out.
<info> app: Starting scan on 1Mbps.
<info> app: 
 Scanning Start

<info> app: RSSI = -48 (dBm), Counter =  1798
<info> app: RSSI = -46 (dBm), Counter =  1800
<info> app: RSSI = -48 (dBm), Counter =  1801
<info> app: RSSI = -46 (dBm), Counter =  1802
<info> app: RSSI = -46 (dBm), Counter =  1803
<info> app: RSSI = -46 (dBm), Counter =  1805
<info> app: RSSI = -47 (dBm), Counter =  1806
<info> app: RSSI = -47 (dBm), Counter =  1808
<info> app: RSSI = -44 (dBm), Counter =  1809
<info> app: RSSI = -47 (dBm), Counter =  1810
<info> app: RSSI = -47 (dBm), Counter =  1811
<info> app: RSSI = -45 (dBm), Counter =  1812
<info> app: RSSI = -46 (dBm), Counter =  1813
<info> app: RSSI = -47 (dBm), Counter =  1814
<info> app: RSSI = -48 (dBm), Counter =  1815
<info> app: RSSI = -49 (dBm), Counter =  1816
<info> app: RSSI = -46 (dBm), Counter =  1817
<info> app: Scan timed out.
<info> app: Starting scan on 1Mbps.
<info> app: 
 Scanning Start

<info> app: Scan timed out.
<info> app: Starting scan on 1Mbps.
<info> app: 
 Scanning Start

<info> app: RSSI = -49 (dBm), Counter =  1838
<info> app: RSSI = -48 (dBm), Counter =  1839
<info> app: RSSI = -52 (dBm), Counter =  1840
<info> app: RSSI = -49 (dBm), Counter =  1841
<info> app: RSSI = -51 (dBm), Counter =  1842
<info> app: RSSI = -53 (dBm), Counter =  1843
<info> app: RSSI = -49 (dBm), Counter =  1844
<info> app: RSSI = -49 (dBm), Counter =  1845
<info> app: RSSI = -49 (dBm), Counter =  1846
<info> app: RSSI = -49 (dBm), Counter =  1849
<info> app: RSSI = -52 (dBm), Counter =  1850
<info> app: RSSI = -48 (dBm), Counter =  1851
<info> app: RSSI = -51 (dBm), Counter =  1852
<info> app: RSSI = -49 (dBm), Counter =  1853
<info> app: RSSI = -49 (dBm), Counter =  1854
<info> app: RSSI = -54 (dBm), Counter =  1855
<info> app: RSSI = -48 (dBm), Counter =  1856
<info> app: RSSI = -48 (dBm), Counter =  1857
<info> app: Scan timed out.
<info> app: Starting scan on 1Mbps.
<info> app: 
 Scanning Start

<info> app: Scan timed out.
<info> app: Starting scan on 1Mbps.
<info> app: 
 Scanning Start

<info> app: RSSI = -44 (dBm), Counter =  1878
<info> app: RSSI = -44 (dBm), Counter =  1878
<info> app: RSSI = -43 (dBm), Counter =  1879
<info> app: RSSI = -43 (dBm), Counter =  1879
<info> app: RSSI = -44 (dBm), Counter =  1880
<info> app: RSSI = -43 (dBm), Counter =  1881
<info> app: RSSI = -43 (dBm), Counter =  1882
<info> app: RSSI = -43 (dBm), Counter =  1882
<info> app: RSSI = -43 (dBm), Counter =  1883
<info> app: RSSI = -43 (dBm), Counter =  1883
<info> app: RSSI = -43 (dBm), Counter =  1884
<info> app: RSSI = -43 (dBm), Counter =  1884
<info> app: RSSI = -43 (dBm), Counter =  1885
<info> app: RSSI = -43 (dBm), Counter =  1886
<info> app: RSSI = -43 (dBm), Counter =  1886
<info> app: RSSI = -44 (dBm), Counter =  1887
<info> app: RSSI = -44 (dBm), Counter =  1887
<info> app: RSSI = -43 (dBm), Counter =  1888
<info> app: RSSI = -43 (dBm), Counter =  1888
<info> app: RSSI = -45 (dBm), Counter =  1889
<info> app: RSSI = -43 (dBm), Counter =  1889
<info> app: RSSI = -44 (dBm), Counter =  1890
<info> app: RSSI = -44 (dBm), Counter =  1890
<info> app: RSSI = -43 (dBm), Counter =  1891
<info> app: RSSI = -43 (dBm), Counter =  1891
<info> app: RSSI = -43 (dBm), Counter =  1892
<info> app: RSSI = -43 (dBm), Counter =  1892
<info> app: RSSI = -43 (dBm), Counter =  1893
<info> app: RSSI = -43 (dBm), Counter =  1893
<info> app: RSSI = -43 (dBm), Counter =  1894
<info> app: RSSI = -43 (dBm), Counter =  1894
<info> app: RSSI = -43 (dBm), Counter =  1895
<info> app: RSSI = -43 (dBm), Counter =  1895
<info> app: RSSI = -44 (dBm), Counter =  1896
<info> app: RSSI = -44 (dBm), Counter =  1896
<info> app: RSSI = -45 (dBm), Counter =  1897
<info> app: RSSI = -45 (dBm), Counter =  1897
<info> app: Scan timed out.
<info> app: Starting scan on 1Mbps.
<info> app: 
 Scanning Start

<info> app: Scan timed out.
<info> app: Starting scan on 1Mbps.
<info> app: 
 Scanning Start

<info> app: RSSI = -49 (dBm), Counter =  1919
<info> app: RSSI = -52 (dBm), Counter =  1921
<info> app: RSSI = -50 (dBm), Counter =  1925
<info> app: RSSI = -51 (dBm), Counter =  1926
<info> app: RSSI = -51 (dBm), Counter =  1927
<info> app: RSSI = -51 (dBm), Counter =  1928
<info> app: RSSI = -50 (dBm), Counter =  1929
<info> app: RSSI = -51 (dBm), Counter =  1931
<info> app: RSSI = -49 (dBm), Counter =  1933
<info> app: RSSI = -50 (dBm), Counter =  1934
<info> app: RSSI = -50 (dBm), Counter =  1935
<info> app: RSSI = -51 (dBm), Counter =  1936
<info> app: RSSI = -50 (dBm), Counter =  1937
<info> app: Scan timed out.
<info> app: Starting scan on 1Mbps.
<info> app: 
 Scanning Start

<info> app: RSSI = -50 (dBm), Counter =  1938
<info> app: RSSI = -51 (dBm), Counter =  1941
<info> app: RSSI = -51 (dBm), Counter =  1942
<info> app: RSSI = -51 (dBm), Counter =  1943
<info> app: RSSI = -50 (dBm), Counter =  1944
<info> app: RSSI = -50 (dBm), Counter =  1945
<info> app: RSSI = -51 (dBm), Counter =  1946
<info> app: RSSI = -51 (dBm), Counter =  1947
<info> app: RSSI = -50 (dBm), Counter =  1948
<info> app: RSSI = -50 (dBm), Counter =  1949
<info> app: RSSI = -51 (dBm), Counter =  1950
<info> app: RSSI = -49 (dBm), Counter =  1952
<info> app: RSSI = -49 (dBm), Counter =  1953
<info> app: RSSI = -51 (dBm), Counter =  1954
<info> app: RSSI = -50 (dBm), Counter =  1955
<info> app: RSSI = -50 (dBm), Counter =  1956
<info> app: RSSI = -51 (dBm), Counter =  1957
<info> app: Scan timed out.
<info> app: Starting scan on 1Mbps.
<info> app: 
 Scanning Start

<info> app: Scan timed out.
<info> app: Starting scan on 1Mbps.
<info> app: 
 Scanning Start

<info> app: RSSI = -49 (dBm), Counter =  1978
<info> app: RSSI = -51 (dBm), Counter =  1979
<info> app: RSSI = -48 (dBm), Counter =  1980
<info> app: RSSI = -48 (dBm), Counter =  1981
<info> app: RSSI = -52 (dBm), Counter =  1982
<info> app: RSSI = -49 (dBm), Counter =  1983
<info> app: RSSI = -50 (dBm), Counter =  1984
<info> app: RSSI = -48 (dBm), Counter =  1985
<info> app: RSSI = -48 (dBm), Counter =  1986
<info> app: RSSI = -48 (dBm), Counter =  1987
<info> app: RSSI = -48 (dBm), Counter =  1988
<info> app: RSSI = -50 (dBm), Counter =  1989
<info> app: RSSI = -51 (dBm), Counter =  1991
<info> app: RSSI = -48 (dBm), Counter =  1992
<info> app: RSSI = -48 (dBm), Counter =  1993
<info> app: RSSI = -48 (dBm), Counter =  1994
<info> app: RSSI = -49 (dBm), Counter =  1995
<info> app: RSSI = -48 (dBm), Counter =  1996
<info> app: Scan timed out.
<info> app: Starting scan on 1Mbps.
<info> app: 
 Scanning Start

<info> app: RSSI = -43 (dBm), Counter =  1999
<info> app: RSSI = -44 (dBm), Counter =  2000
<info> app: RSSI = -43 (dBm), Counter =  2001
<info> app: RSSI = -44 (dBm), Counter =  2004
<info> app: RSSI = -44 (dBm), Counter =  2007
<info> app: RSSI = -45 (dBm), Counter =  2009
<info> app: RSSI = -45 (dBm), Counter =  2010
<info> app: RSSI = -44 (dBm), Counter =  2012
<info> app: RSSI = -45 (dBm), Counter =  2015
<info> app: RSSI = -44 (dBm), Counter =  2017
<info> app: Scan timed out.
<info> app: Starting scan on 1Mbps.
<info> app: 
 Scanning Start

<info> app: Scan timed out.
<info> app: Starting scan on 1Mbps.
<info> app: 
 Scanning Start

<info> app: RSSI = -51 (dBm), Counter =  2038
<info> app: RSSI = -52 (dBm), Counter =  2039
<info> app: RSSI = -52 (dBm), Counter =  2040
<info> app: RSSI = -49 (dBm), Counter =  2041
<info> app: RSSI = -49 (dBm), Counter =  2042
<info> app: RSSI = -52 (dBm), Counter =  2043
<info> app: RSSI = -55 (dBm), Counter =  2044
<info> app: RSSI = -54 (dBm), Counter =  2045
<info> app: RSSI = -49 (dBm), Counter =  2046
<info> app: RSSI = -54 (dBm), Counter =  2047
<info> app: RSSI = -49 (dBm), Counter =  2048
<info> app: RSSI = -51 (dBm), Counter =  2049
<info> app: RSSI = -48 (dBm), Counter =  2050
<info> app: RSSI = -57 (dBm), Counter =  2051
<info> app: RSSI = -51 (dBm), Counter =  2054
<info> app: RSSI = -49 (dBm), Counter =  2056
<info> app: Scan timed out.
<info> app: Starting scan on 1Mbps.
<info> app: 
 Scanning Start

<info> app: RSSI = -44 (dBm), Counter =  2060

Scanning settings and start routine are standard ones.

Please take a look and maybe aynone had similar issue?

Thanks!

  • Hi,

    I have to answer it myself. Tried playing with scan interval and window.  As standard, interval is 100ms , window is 50ms. So with the time advert transmission was moving toward non scanning window. Also when scanning was started was important.  After setting both window and interval to the same value, everything is received correctly.

    Hope it will help others as well.

    Mike

  • Hi,

    I do have the same issue, and I am still looking for the answer. In my application, a nRF central device is continuously scanning for beacons, that transmit once every 10 seconds. This runs OK for several minutes, but then for several minutes no beacons are detected although my smartphone tells me they are being transmitted. After a while, reception gets active again.

    What I assume is that the scanner and the beacons are almost, but not entirely, running at the same speed and channel-hopping is almost in sync. If they are on the same channel, beacons are received, but if one device gets ahead, it will be on another channel than the one begin scanned. With a small difference in speed, it will take quite a while for them to get in sync once more.

    Might this be the explanation? .I wonder if there is a golden setting for scan-window and scan-interval, or if I would have to restrict the number of channels at the risk of receving nothing at all in a noisy environment.

    If you have a working solution, would you please share the code?

    cheers,

    Henk

Related