<?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>with Arduino IDE, can the Seeed nRF52840 sense really consume less than 1mA when sleeping?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/126587/with-arduino-ide-can-the-seeed-nrf52840-sense-really-consume-less-than-1ma-when-sleeping</link><description>I struggle with my experimental project of breath and apnea detection. It works except that I cannot reduce the poser consumption bellow 1mA when powered on battery, despite trying to cut all unnecessary components. The program sleeps every 100ms, and</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 05 Feb 2026 07:06:13 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/126587/with-arduino-ide-can-the-seeed-nrf52840-sense-really-consume-less-than-1ma-when-sleeping" /><item><title>RE: with Arduino IDE, can the Seeed nRF52840 sense really consume less than 1mA when sleeping?</title><link>https://devzone.nordicsemi.com/thread/560398?ContentTypeID=1</link><pubDate>Thu, 05 Feb 2026 07:06:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8228e5b9-7b7f-41b1-ac3c-25750bdeed64</guid><dc:creator>troubadour06</dc:creator><description>&lt;p&gt;Yes Vidar, I have configured the IMU sampling rate at a low frequency that minimises the power usage for both the Accelero and gyro. I tried a WFE While the IMU stabilises but something else in the Arduino stick keeps HFCLK on, so no real gain. and now, I&amp;rsquo;m adding snoring noise detection that uses the PDM that also&amp;nbsp;requires HFCLK! therefore, low power target seems less and less realistic in my context. As this is not a commercial project, I won&amp;rsquo;t flight to death for low power, and focus on fonctionnality&amp;nbsp;&lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: with Arduino IDE, can the Seeed nRF52840 sense really consume less than 1mA when sleeping?</title><link>https://devzone.nordicsemi.com/thread/560152?ContentTypeID=1</link><pubDate>Mon, 02 Feb 2026 16:21:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:771930b8-54ef-42b7-a5d4-f94274c8296c</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;It&amp;#39;s good to hear that you have made progress on this. Perhaps the &lt;span&gt;LSM6DS3 can be configured to run in a mode that consumes let power?&lt;/span&gt;&lt;/p&gt;
[quote user="troubadour06"]i need to wait around 50ms before accelero and gyro values are stabilized . As I wake up cpu every 100ms to measure breath, at the end , cpu has to remain active half of the time …[/quote]
&lt;p&gt;Do you have to run the CPU in a busy wait for these 50 milliseconds while waiting for the IMU to become ready? &amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: with Arduino IDE, can the Seeed nRF52840 sense really consume less than 1mA when sleeping?</title><link>https://devzone.nordicsemi.com/thread/559972?ContentTypeID=1</link><pubDate>Fri, 30 Jan 2026 07:23:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8969adca-8a29-46a8-9715-3ba3c2dc6cf2</guid><dc:creator>troubadour06</dc:creator><description>&lt;p&gt;I progressed a lot, and thanks to your advise to test the current with Systemoff=1, i saw that there was still more than 1mA burned when processor was off. I identified why: i was using input VIN of the Seeed board and it uses a different power regulator, that burns power even if CPU is off. so, i switched back to V Bat and miracle: in system off, current is now around 10 uA.&amp;nbsp;&lt;br /&gt;Now, when the code is running, power usage = 1,4mA. when i switch off the Accelero /Gyro and enter into &amp;lsquo;sleep&amp;rsquo; mode (WFE), it goes down to 700uA. this now look much better.&amp;nbsp;&lt;br /&gt;I will now try to shut down other stuff.&amp;nbsp;&lt;br /&gt;One issue related to power optimisation with the Seeed board is that when cutting off &lt;span&gt;the IMU (LSM6DS3)&amp;nbsp;&lt;/span&gt;before sleep, then at wake up, after turning&amp;nbsp;it on, i need to wait around 50ms before accelero and gyro values are stabilized . As I wake up cpu every 100ms to measure breath, at the end , cpu has to remain active half of the time &amp;hellip;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: with Arduino IDE, can the Seeed nRF52840 sense really consume less than 1mA when sleeping?</title><link>https://devzone.nordicsemi.com/thread/559629?ContentTypeID=1</link><pubDate>Tue, 27 Jan 2026 08:08:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c8dc26be-d8fc-486f-b523-eb1cfa844649</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;No problem. Unfortunately it is difficult for me to give more concrete advice since I am not familiar with the Arduino implementation. ~3 mA matches the system current when the CPU is active with the DCDC regulator enabled and VDD at 3 V, so this current draw could indicate that the idle thread is never allowed to run when the USB and the IMU are enabled. Did you also try measuring the power consumption after setting&amp;nbsp;NRF_POWER-&amp;gt;&lt;a href="https://docs.nordicsemi.com/#ariaid-title38"&gt;SYSTEMOFF&lt;/a&gt;= 1;?&lt;/p&gt;
&lt;p&gt;System current with CPU running:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://docs.nordicsemi.com/bundle/ps_nrf52840/page/_tmp/nrf52840/autodita/CURRENT/parameters.i_cpu.html"&gt;https://docs.nordicsemi.com/bundle/ps_nrf52840/page/_tmp/nrf52840/autodita/CURRENT/parameters.i_cpu.html&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: with Arduino IDE, can the Seeed nRF52840 sense really consume less than 1mA when sleeping?</title><link>https://devzone.nordicsemi.com/thread/559596?ContentTypeID=1</link><pubDate>Mon, 26 Jan 2026 17:00:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:335d6f5c-1e3e-48d8-9fde-841e6f2216ff</guid><dc:creator>troubadour06</dc:creator><description>&lt;p data-start="2044" data-end="2084"&gt;A big thank you Vidar for your advice,&lt;/p&gt;
&lt;p data-start="2091" data-end="2402"&gt;I investigated the issue further and found that the Seeed Arduino core for the nRF52840 uses FreeRTOS, and that the IMU library provided for this board (Seeed LSM6DS3) indirectly pulls in dependencies (Wire, system services, RTOS infrastructure) that result in additional FreeRTOS tasks being created.&lt;/p&gt;
&lt;p data-start="2409" data-end="2632"&gt;In particular, when the IMU library is used, or when &lt;code data-start="2462" data-end="2470"&gt;Serial&lt;/code&gt; (USB CDC) is enabled, a USBD-related FreeRTOS thread is created, which keeps HFCLK running and prevents the system from reaching low-power idle states.&lt;/p&gt;
&lt;p data-start="2639" data-end="2829"&gt;By removing all calls to the IMU library and not using &lt;code data-start="2694" data-end="2702"&gt;Serial&lt;/code&gt;, the USBD thread is not created, and I measure around 800 &amp;micro;A, versus ~3 mA when using the IMU library or USB Serial.&lt;/p&gt;
&lt;p data-start="2836" data-end="3203"&gt;After multiple additional investigations (attempting to suspend the USBD task via the scheduler and manually disabling USB registers), my conclusion is that with the current Seeed Arduino IMU/USB stack, it is not possible to fully benefit from the low-power capabilities of the nRF52840, mainly due to HFCLK being required by background RTOS/USB components.&lt;/p&gt;
&lt;p data-start="3210" data-end="3443"&gt;One possible option would be to replace the Seeed IMU library with a minimal custom driver, avoid &lt;code data-start="3312" data-end="3320"&gt;Wire.h&lt;/code&gt;, and interface directly with TWIM in bare-metal style, ensuring that no USB- or RTOS-related services are pulled in.&lt;/p&gt;
&lt;p data-start="3450" data-end="3644"&gt;Another alternative would be to move to a Nordic-native environment (nrfx / nRF5 SDK / nRF Connect SDK) instead of the Arduino core, although this represents a significant additional effort.&lt;/p&gt;
&lt;p data-start="3450" data-end="3644"&gt;If readers have experience on this topic, happy to get advises on the best / simplest option &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt;&lt;/p&gt;
&lt;p data-start="3450" data-end="3644"&gt;**********************************************************************&lt;br /&gt;For info, the threads running on Arduino/Seeed environment:&lt;/p&gt;
&lt;p data-start="3450" data-end="3644"&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:courier new, courier;"&gt;Name&amp;nbsp; &amp;nbsp; &amp;nbsp;State&amp;nbsp; &amp;nbsp; Prio&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family:courier new, courier;"&gt;loop&amp;nbsp; &amp;nbsp; &amp;nbsp;X&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new, courier;"&gt;IDLE&amp;nbsp; &amp;nbsp; &amp;nbsp;R&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new, courier;"&gt;Callbac&amp;nbsp; B&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new, courier;"&gt;usbd&amp;nbsp; &amp;nbsp; &amp;nbsp;B&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new, courier;"&gt;Tmr Svc&amp;nbsp; B&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: with Arduino IDE, can the Seeed nRF52840 sense really consume less than 1mA when sleeping?</title><link>https://devzone.nordicsemi.com/thread/559062?ContentTypeID=1</link><pubDate>Mon, 19 Jan 2026 15:14:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5467d656-4733-4b11-99a7-6098749fca83</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Even though you can’t use System OFF in your final application, it may still be worth trying to measure with your application and HW. This can help rule out other potential issues in the setup, such as leakage from external circuitry like the IMU, etc. I don’t have experience with the Arduino implementation you’re using, but if the floor current is around ~1 mA in sleep, that at least tells us the chip has correctly entered System ON idle. But there may still be a peripheral requesting the HF clock, or something being driven by the GPIOs that prevents you from getting in the 2-3 uA range.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>