<?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>SAADC Missing/Incorrect Readings</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/103392/saadc-missing-incorrect-readings</link><description>Hi, I am working on a Wirepas project using the nRF52832 and am running into an issue when using the SAADC. I have already spoken to Wirepas about the issue and they directed me to check with Nordic as they do not see a reason for the issue with my code</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 27 Sep 2023 15:23:40 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/103392/saadc-missing-incorrect-readings" /><item><title>RE: SAADC Missing/Incorrect Readings</title><link>https://devzone.nordicsemi.com/thread/448004?ContentTypeID=1</link><pubDate>Wed, 27 Sep 2023 15:23:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f1d2c29e-4c52-4130-bd4d-8c1a43d1fd62</guid><dc:creator>hmolesworth</dc:creator><description>&lt;p&gt;I just ran this code without modifications and it works fine on the first 3 readings:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;void stuff(void)
{
   uint32_t task_count = 0;
    adc_samples[0][task_count] = Saadc_Oneshot_Sample(SAADC_CH_PSELP_PSELP_AnalogInput0);
    adc_samples[1][task_count] = Saadc_Oneshot_Sample(SAADC_CH_PSELP_PSELP_AnalogInput1);
    adc_samples[2][task_count] = Saadc_Oneshot_Sample(SAADC_CH_PSELP_PSELP_AnalogInput2);
   while(1)&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Removing &amp;quot;++&amp;quot; from&amp;nbsp;&lt;/span&gt;&lt;em&gt;if(current_sampling_task_count++ a&lt;/em&gt;nd placing outside the if block&amp;nbsp;would appear to fix the issue.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC Missing/Incorrect Readings</title><link>https://devzone.nordicsemi.com/thread/447979?ContentTypeID=1</link><pubDate>Wed, 27 Sep 2023 14:06:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e8055256-e4a6-4266-830b-4f38f5a11746</guid><dc:creator>dlewis</dc:creator><description>&lt;p&gt;I went and tested this using a variety of online C compiler emulators and it does look like it is dependent on which compiler is used. To me that seems like a silly thing to have be compiler dependent, but I have only ever seen it the one way until now.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;I will change the code to follow your suggested incrementing procedure, as that way should operate the same no matter which compiler/optimization is used.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC Missing/Incorrect Readings</title><link>https://devzone.nordicsemi.com/thread/447975?ContentTypeID=1</link><pubDate>Wed, 27 Sep 2023 14:01:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a62308bf-aa23-482f-8e36-9c1e4825b5e6</guid><dc:creator>dlewis</dc:creator><description>&lt;p&gt;I cannot speak on the differences in compilers, but when I run the code, Current_Measure_Task() does properly receive a &amp;#39;0&amp;#39; on first invocation. The issue I am having is that in the below portion of code, the call of Saadc_Oneshot_Sample(SAADC_CH_PSELP_PSELP_AnalogInput0); returns &amp;#39;0&amp;#39;, when the other 2 calls of&amp;nbsp;&lt;span&gt;Saadc_Oneshot_Sample() for the other two pins return valid values. This occurs even if I change the order of which pin is sampled first.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1695823154670v1.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC Missing/Incorrect Readings</title><link>https://devzone.nordicsemi.com/thread/447591?ContentTypeID=1</link><pubDate>Mon, 25 Sep 2023 23:27:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:560111df-b568-45fb-8271-73b3cda21595</guid><dc:creator>hmolesworth</dc:creator><description>&lt;p&gt;No offense, but I disagree - I just tested this and see that&amp;nbsp;&lt;em&gt;current_sampling_task_count&lt;/em&gt; is &amp;#39;1&amp;#39; (not &amp;#39;0&amp;#39;) on the first invocation of&amp;nbsp;&lt;em&gt;Current_Measure_Task()&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;This may be compiler and optimisation dependent; I tested on IAR v8.34&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC Missing/Incorrect Readings</title><link>https://devzone.nordicsemi.com/thread/447542?ContentTypeID=1</link><pubDate>Mon, 25 Sep 2023 15:15:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a6fe81e0-b56a-45cc-83c8-6e8a5210a4e4</guid><dc:creator>dlewis</dc:creator><description>&lt;p&gt;Hi hmolesworth,&lt;br /&gt;&lt;br /&gt;As far as I am aware, in C, the &amp;quot;++&amp;quot; after the variable implies the value is not incremented until after the code in the if statement. I believe this is confirmed by the fact that Current_Measure_Task() is in fact receiving the parameter of &amp;#39;0&amp;#39; for &amp;quot;task_count&amp;quot;. That is not the issue. The issue is that when Saadc_Oneshot_Sample() is called and sent the parameter of &amp;quot;SAADC_CH_PSELP_AnalogInput0&amp;quot;, it always returns a value of &amp;#39;0&amp;#39; when &amp;quot;task_count&amp;quot; = 0. It is strange because that when &amp;quot;task_count&amp;quot; = 0, the other two calls of&amp;nbsp;&lt;span&gt;Saadc_Oneshot_Sample() for&amp;nbsp;&amp;quot;SAADC_CH_PSELP_AnalogInput1&amp;quot; and&amp;nbsp;&amp;quot;SAADC_CH_PSELP_AnalogInput2&amp;quot; return valid ADC readings. Even if you change the order of which channel is being sampled first, it is only problematic for&amp;nbsp;&amp;quot;SAADC_CH_PSELP_AnalogInput0&amp;quot;.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC Missing/Incorrect Readings</title><link>https://devzone.nordicsemi.com/thread/447149?ContentTypeID=1</link><pubDate>Thu, 21 Sep 2023 19:04:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:74854e5e-5db7-48e8-8fc0-e6fcc2a7f506</guid><dc:creator>hmolesworth</dc:creator><description>&lt;p&gt;Looks like a software bug, &lt;em&gt;Current_Measure_Task()&lt;/em&gt; starts with 1 not 0:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;    if(current_sampling_task_count++ &amp;gt;= (ADC_SAMPLE_COUNT - 1))
    {
       blah-blah
    }else{
        // current_sampling_task_count is already 1 not 0
        Current_Measure_Task(current_sampling_task_count);  //take samples for current measurements
        // nrf_gpio_pin_toggle(11);
        return CURRENT_SAMPLING_TASK_PERIOD_DEFAULT;
    }
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Fix: Remove &amp;quot;++&amp;quot; from&amp;nbsp;&lt;em&gt;if(current_sampling_task_count++&lt;/em&gt; and place after if stuff&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC Missing/Incorrect Readings</title><link>https://devzone.nordicsemi.com/thread/447142?ContentTypeID=1</link><pubDate>Thu, 21 Sep 2023 16:48:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:297197ba-6be9-4d8c-a6c0-8b8cb28cebe0</guid><dc:creator>dlewis</dc:creator><description>&lt;p&gt;Hi Karl,&lt;br /&gt;&lt;br /&gt;I will look into using nrfx_saadc_sample() early next week, I am out of the office till then.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;To answer your question about what the register manipulation code is based on:&lt;br /&gt;The code is taken directly from Wirepas, this is how they have implemented SAADC usage in their SDK. I will provide the source file it is based on. The only thing that I changed was the the source pin of&amp;nbsp;SAADC_CH_PSELP_PSELP_Pos.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/voltage_5F00_52832.c"&gt;devzone.nordicsemi.com/.../voltage_5F00_52832.c&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC Missing/Incorrect Readings</title><link>https://devzone.nordicsemi.com/thread/447140?ContentTypeID=1</link><pubDate>Thu, 21 Sep 2023 16:40:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a434d295-d927-4f6e-b2d8-0f1ed0e9389c</guid><dc:creator>Karl Ylvisaker</dc:creator><description>&lt;p&gt;Hello,&lt;br /&gt;&lt;br /&gt;Thank you for getting this information from Wirepas - it is good to know that they are using the nrfx v2.5 drivers in their SDK.&lt;br /&gt;&lt;br /&gt;In this case we will need to take a closer look at your code and your SAADC usage.&lt;br /&gt;Could you make an attempt where you substitute the direct register manipulation with use of the nrfx saadc API instead?&lt;br /&gt;For instance, to perform a single sampling you should then use &lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/group__nrfx__saadc.html#gaf117e087540c455a6dfe05f258d118f0"&gt;nrfx_saadc_sample()&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Just out of curiosity, what resource is the register-manipulation code in the current approach based on - is this something you have made inhouse based on the PS, or is it based on another reference from elsewhere?&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Karl&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC Missing/Incorrect Readings</title><link>https://devzone.nordicsemi.com/thread/446475?ContentTypeID=1</link><pubDate>Mon, 18 Sep 2023 13:54:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a354aeda-df84-4c84-b428-14ba7ad1ec5d</guid><dc:creator>dlewis</dc:creator><description>&lt;p&gt;This is the response from Wirepas:&lt;/p&gt;
&lt;div&gt;Hi David,&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div dir="ltr"&gt;First in order to be clear in the SDK we do not deliver any SAADC driver. The necessary register definitions of peripherals, memory mapping and so forth which indeed comes from the nrfx library provided by Nordic.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div dir="ltr"&gt;In the SDK v1.4.0 required to develop with the stack v5.3, the nrfx v2.5.0 is used.&lt;/div&gt;
&lt;div dir="ltr"&gt;If you search into our SDK you will see that for nRF52 there is no mention of this CALIBRATEOFFSET.&lt;/div&gt;
&lt;div dir="ltr"&gt;&lt;/div&gt;
&lt;div dir="ltr"&gt;One question:&lt;/div&gt;
&lt;ul&gt;
&lt;li dir="ltr"&gt;Have you tested your ADC reading with a baremetal application i.e without any Wirepas SDK/Wirepas stack to know what is the behaviour?&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;If anything is unclear please let us know.&lt;/div&gt;
&lt;div&gt;Looking forward to your reply.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Best regards,&lt;/div&gt;
&lt;div dir="ltr"&gt;Wirepas Customer Success team.&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC Missing/Incorrect Readings</title><link>https://devzone.nordicsemi.com/thread/445922?ContentTypeID=1</link><pubDate>Wed, 13 Sep 2023 17:31:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0b6b5547-eced-44b4-aeaa-85bf963ad0ac</guid><dc:creator>Karl Ylvisaker</dc:creator><description>&lt;p&gt;Alright, great! :)&amp;nbsp;&lt;br /&gt;I look forward to hearing their reply.&lt;br /&gt;&lt;br /&gt;In the unlikely case that they do&amp;nbsp;&lt;em&gt;not&lt;/em&gt; use the nrfx_saadc driver as part of their SDK (i.e that they have made their own driver implementation, or similar), please ask them specifically if this driver includes the workarounds for the Erratas I referenced in my previous comment.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Karl&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC Missing/Incorrect Readings</title><link>https://devzone.nordicsemi.com/thread/445873?ContentTypeID=1</link><pubDate>Wed, 13 Sep 2023 13:59:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d61ccbcc-e8c9-4b32-a25c-4a8d365c5eab</guid><dc:creator>dlewis</dc:creator><description>&lt;p&gt;I&amp;#39;ve sent a ticket to Wirepas asking those questions about the nrfx version and use of calibrateoffset. Will reply with their response.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC Missing/Incorrect Readings</title><link>https://devzone.nordicsemi.com/thread/445664?ContentTypeID=1</link><pubDate>Tue, 12 Sep 2023 14:09:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d9ab4ab0-46a4-4289-b2d8-59b5d3f61b8d</guid><dc:creator>Karl Ylvisaker</dc:creator><description>&lt;p&gt;Hello,&lt;br /&gt;&lt;br /&gt;Thank you for your patience with this.&lt;/p&gt;
[quote user="dlewis"]It doesn&amp;#39;t look like the same issue occurs here.[/quote]
&lt;p&gt;Thank you for the update, this is very good debugging information, and it points to there being an issue with the other firmware, so now we can focus to try and isolate this error further.&lt;/p&gt;
[quote user="dlewis"]I also ran a test using my Wirepas code. On line 32 of current_measure.c I changed the value of &amp;quot;adc_result&amp;quot; to another non-zero value. The value still comes out to be 0 after the sample task completes, but only on the &amp;quot;first&amp;quot; iteration of the full sampling sequence. I still don&amp;#39;t have any idea how or why the SAADC seems to &amp;quot;know&amp;quot; it&amp;#39;s the first iteration when it only controls what array position the value gets written to and shouldn&amp;#39;t influence the measurement itself.&amp;nbsp;[/quote]
&lt;p&gt;As mentioned I am not personally familiar with the Wirepas Massive SDK, but I would assume that they use the nRFX drivers behind the scenes, is this correct? If so, which version of the nRFX drivers are they using for the SAADC operation in the 5.3 SDK? Is there any chance that they are shutting down the SAADC in between each usage, and/or performing a calibration procedure? A calibration procedure will produce a junk sample to the buffer, which possibly could be what you are seeing here.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Karl&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC Missing/Incorrect Readings</title><link>https://devzone.nordicsemi.com/thread/444751?ContentTypeID=1</link><pubDate>Wed, 06 Sep 2023 14:17:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3d111c3a-87bc-4110-86b5-59f7e2114d14</guid><dc:creator>dlewis</dc:creator><description>&lt;p&gt;I also ran a test using my Wirepas code. On line 32 of current_measure.c I changed the value of &amp;quot;adc_result&amp;quot; to another non-zero value. The value still comes out to be 0 after the sample task completes, but only on the &amp;quot;first&amp;quot; iteration of the full sampling sequence. I still don&amp;#39;t have any idea how or why the SAADC seems to &amp;quot;know&amp;quot; it&amp;#39;s the first iteration when it only controls what array position the value gets written to and shouldn&amp;#39;t influence the measurement itself.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC Missing/Incorrect Readings</title><link>https://devzone.nordicsemi.com/thread/444745?ContentTypeID=1</link><pubDate>Wed, 06 Sep 2023 14:11:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:27eb83de-08a0-4e5b-8841-19645d7da04b</guid><dc:creator>dlewis</dc:creator><description>&lt;p&gt;Here is the output result of running the SAADC example from the SDK on my custom hardware:&lt;br /&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1694009439446v1.png" alt=" " /&gt;&lt;br /&gt;It doesn&amp;#39;t look like the same issue occurs here.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC Missing/Incorrect Readings</title><link>https://devzone.nordicsemi.com/thread/444698?ContentTypeID=1</link><pubDate>Wed, 06 Sep 2023 11:14:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bf5a6f0b-5b6d-4460-847f-3c173a799e7a</guid><dc:creator>Karl Ylvisaker</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
[quote user="dlewis"]I will run the example and reply with how it goes.[/quote]
&lt;p&gt;Great, I look forward to hearing your results.&lt;/p&gt;
[quote user="dlewis"]I am not familiar with CALIBRATEOFFSET, is that something I would manually have to run, or could it happen as a result of something else? I am not specifically calling that procedure anywhere. Everything SAADC related being used is in the files provided already, as far as I am aware. Thanks for the help![/quote]
&lt;p&gt;You should run CALIBRATEOFFSET at the start of your SAADC usage, and as a rule of thumb once every time the ambient temperature has changed by 10 degrees Celsius, to keep the SAADC output accurate.&lt;/p&gt;
[quote user="dlewis"]Here are the schematic screenshots of the adc pins used. The pins being measured are the &amp;quot;ISNSX_A2D&amp;quot; pins.&amp;nbsp;[/quote]
&lt;p&gt;Thank you for sharing this - I do not immediately see any reason why the one pin should behave differently. It will be interesting to see the results from your nRF5 SDK SAADC example tests.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Karl&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC Missing/Incorrect Readings</title><link>https://devzone.nordicsemi.com/thread/444557?ContentTypeID=1</link><pubDate>Tue, 05 Sep 2023 14:59:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ec47024b-04e1-44e5-9a6d-e52ee418dc99</guid><dc:creator>dlewis</dc:creator><description>&lt;p&gt;I will run the example and reply with how it goes.&lt;br /&gt;&lt;br /&gt;I am not familiar with CALIBRATEOFFSET, is that something I would manually have to run, or could it happen as a result of something else? I am not specifically calling that procedure anywhere. Everything SAADC related being used is in the files provided already, as far as I am aware. Thanks for the help!&lt;br /&gt;&lt;br /&gt;Here are the schematic screenshots of the adc pins used. The pins being measured are the &amp;quot;ISNSX_A2D&amp;quot; pins.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1693925784473v1.png" alt=" " /&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1693925813211v2.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC Missing/Incorrect Readings</title><link>https://devzone.nordicsemi.com/thread/444332?ContentTypeID=1</link><pubDate>Mon, 04 Sep 2023 13:01:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e2a02f22-c85f-4e2f-89aa-4b041be58f18</guid><dc:creator>Karl Ylvisaker</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
[quote user=""]The issue I am seeing is that the very first SAADC sample of each cycle, specifically when sampling AIN0, returns a reading of &amp;#39;0&amp;#39; no matter what. This happens at line 155 of current_measure.c. It only happens when measuring AIN0, and it doesn&amp;#39;t matter if the order of lines 155 to 157, AIN0 always returns 0 the first time. Every other time after that it returns a valid value. I have confirmed this by printing out the array values for each.&amp;nbsp;[/quote]
&lt;p&gt;That sounds strange indeed.&lt;br /&gt;I am not personally familiar with the Wirepas Massive SDK, so as a debugging step to isolate the issue, could you &lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/nrf_dev_saadc_example.html"&gt;run the default SAADC example from the nRF5 SDK&lt;/a&gt;&amp;nbsp;to see if this also exhibits the same behavior?&lt;br /&gt;&lt;br /&gt;Could you also verify whether you are triggering the CALIBRATEOFFSET procedure anywhere in your application?&lt;br /&gt;If so, you will need to be aware of &lt;a href="https://infocenter.nordicsemi.com/topic/errata_nRF52832_Rev3/ERR/nRF52832/Rev3/latest/anomaly_832_86.html"&gt;Errate 86&lt;/a&gt;&amp;nbsp;and &lt;a href="https://infocenter.nordicsemi.com/topic/errata_nRF52832_Rev3/ERR/nRF52832/Rev3/latest/anomaly_832_252.html"&gt;Errata 252&lt;/a&gt;.&lt;br /&gt;I could not see this in your shared code, and I dont expect that this would happen anywhere else unexpectedly since you are not using any SAADC driver, but I ask just in case.&lt;br /&gt;&lt;br /&gt;Could you possibly share the relevant parts of your schematics as well, for good measure?&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Karl&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>