<div dir="auto"><div>I think you are mixing up different aspects of low power operation. pm_layered will cause the CPU to go to low power modes when there is no thread running, it will not touch anything other than the CPU. The sleep mode of the radio is the responsibility of a different module. You can control the radio sleep mode manually from the shell using ifconfig x set state sleep, or automatically if you configure a radio duty cycling layer, such as ContikiMAC. If you are running the gnrc_networking example out of the box with no modifications, then you are not using any duty cycling method. This is similar to when contiki is configured with nullrdc instead of TSCH or ContikiMAC.<div dir="auto">There are two duty cycling modules in the master repo AFAIK: lwmac and gomach. I have never used either of them because of limitations in the implementations which means they are useless for my projects, so I can't help you with those. The only duty cycling layer which I know anything about is the proposed netdev ContikiMAC module in [1]. That module is intended to wake up every 1/8 th of a second and do CCA checks, just like contiki does when running contikimac for the RDC. Sending will strobe the frame according to the rules described in the module API documentation (run make doc locally), or in the original paper on ContikiMAC[2].</div><div dir="auto">The module in [1] is highly experimental and has only ever been tested on frdm-kw41z and samr21-xpro boards. </div><div dir="auto"><br></div><div dir="auto">/Joakim </div><div dir="auto"><br></div>[1]: <a href="https://github.com/RIOT-OS/RIOT/pull/9478">https://github.com/RIOT-OS/RIOT/pull/9478</a></div><div dir="auto">[2]: <a href="http://dunkels.com/adam/dunkels11contikimac.pdf">http://dunkels.com/adam/dunkels11contikimac.pdf</a><br><br><div class="gmail_quote" dir="auto"><div dir="ltr">Den tor 8 nov. 2018 20:09 skrev Navneet Pandey <<a href="mailto:navneet.pandey@outlook.in">navneet.pandey@outlook.in</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="m_7269782060633883404WordSection1">
<p class="MsoNormal">Hello Joakim,<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Thank you, the information was really helpful. I was exploring the ‘at86rf2xx_netdev.c’ file. I noticed something weird. When I enabled debugging all I got was<u></u><u></u></p>
<ul style="margin-top:0in" type="disc">
<li class="m_7269782060633883404MsoListParagraph" style="margin-left:0in">To Idle state<u></u><u></u></li><li class="m_7269782060633883404MsoListParagraph" style="margin-left:0in">Evt TX_END<u></u><u></u></li><li class="m_7269782060633883404MsoListParagraph" style="margin-left:0in">Evt RX_END<u></u><u></u></li></ul>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">By enabling debugging in pm_layered.c and pm.c, I noticed cortex_sleep(deep) was being called when radio was not doing anything. So why am I not seeing any of the following debug statements being printed (or in other words none of the following
 cases being invoked).<u></u><u></u></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1e1e1e"><span style="font-size:10.5pt;font-family:Consolas;color:#c586c0">case</span><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4"> NETOPT_STATE_STANDBY:<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1e1e1e"><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4">           
</span><span style="font-size:10.5pt;font-family:Consolas;color:#dcdcaa">DEBUG</span><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4">(</span><span style="font-size:10.5pt;font-family:Consolas;color:#ce9178">"STANDBY</span><span style="font-size:10.5pt;font-family:Consolas;color:#d7ba7d">\n</span><span style="font-size:10.5pt;font-family:Consolas;color:#ce9178">"</span><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4">);           
<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1e1e1e"><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4">            </span><span style="font-size:10.5pt;font-family:Consolas;color:#dcdcaa">at86rf2xx_set_state</span><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4">(dev,
 AT86RF2XX_STATE_TRX_OFF);<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1e1e1e"><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4">           
</span><span style="font-size:10.5pt;font-family:Consolas;color:#c586c0">break</span><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4">;<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1e1e1e"><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4">       
</span><span style="font-size:10.5pt;font-family:Consolas;color:#c586c0">case</span><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4"> NETOPT_STATE_SLEEP:<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1e1e1e"><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4">           
</span><span style="font-size:10.5pt;font-family:Consolas;color:#dcdcaa">DEBUG</span><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4">(</span><span style="font-size:10.5pt;font-family:Consolas;color:#ce9178">"To SLEEP</span><span style="font-size:10.5pt;font-family:Consolas;color:#d7ba7d">\n</span><span style="font-size:10.5pt;font-family:Consolas;color:#ce9178">"</span><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4">);<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1e1e1e"><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4">           
</span><span style="font-size:10.5pt;font-family:Consolas;color:#dcdcaa">at86rf2xx_set_state</span><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4">(dev, AT86RF2XX_STATE_SLEEP);<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1e1e1e"><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4">           
</span><span style="font-size:10.5pt;font-family:Consolas;color:#c586c0">break</span><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4">;<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1e1e1e"><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4">       
</span><span style="font-size:10.5pt;font-family:Consolas;color:#c586c0">case</span><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4"> NETOPT_STATE_IDLE:<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1e1e1e"><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4">           
</span><span style="font-size:10.5pt;font-family:Consolas;color:#dcdcaa">DEBUG</span><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4">(</span><span style="font-size:10.5pt;font-family:Consolas;color:#ce9178">"To IDLE</span><span style="font-size:10.5pt;font-family:Consolas;color:#d7ba7d">\n</span><span style="font-size:10.5pt;font-family:Consolas;color:#ce9178">"</span><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4">);<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1e1e1e"><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4">           
</span><span style="font-size:10.5pt;font-family:Consolas;color:#dcdcaa">at86rf2xx_set_state</span><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4">(dev, AT86RF2XX_STATE_RX_AACK_ON);<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1e1e1e"><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4">           
</span><span style="font-size:10.5pt;font-family:Consolas;color:#c586c0">break</span><span style="font-size:10.5pt;font-family:Consolas;color:#d4d4d4">;<u></u><u></u></span></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">Regards,<u></u><u></u></p>
<p class="MsoNormal">Navneet Pandey<u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Navneet Pandey <<a href="mailto:navneet.pandey@outlook.in" target="_blank" rel="noreferrer">navneet.pandey@outlook.in</a>> <br>
<b>Sent:</b> Monday, November 5, 2018 11:10 AM<br>
<b>To:</b> <a href="mailto:users@riot-os.org" target="_blank" rel="noreferrer">users@riot-os.org</a><br>
<b>Subject:</b> Radio Interrupt Handler<u></u><u></u></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Hello, <u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Could someone please point out the code where radio is switched on/off when sending a MAC/UDP packet.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I am expecting something similar to the following code snippet:<u></u><u></u></p>
<p class="MsoNormal">/** Turn the MAC layer on. */<u></u><u></u></p>
<p class="MsoNormal">  int (* on)(void);<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">  /** Turn the MAC layer off. */<u></u><u></u></p>
<p class="MsoNormal">  int (* off)(int keep_radio_on);<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">This code is from Contiki.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I am interested in understanding the time it takes for system to wake up from sleep (dormant mode) to receive packets.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Thank you.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Regards,<u></u><u></u></p>
<p class="MsoNormal">Navneet Pandey<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>

_______________________________________________<br>
users mailing list<br>
<a href="mailto:users@riot-os.org" target="_blank" rel="noreferrer">users@riot-os.org</a><br>
<a href="https://lists.riot-os.org/mailman/listinfo/users" rel="noreferrer noreferrer" target="_blank">https://lists.riot-os.org/mailman/listinfo/users</a><br>
</blockquote></div></div></div>