<?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>I2C issue with update over the air</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/126080/i2c-issue-with-update-over-the-air</link><description>Hi, 
 We are using a TMD2636 proximity sensor on our board, connected via I&amp;#178;C on pins P0.18 (SDA) and P0.30 (SCL). The same I&amp;#178;C bus also contains a TMP117 temperature sensor and another device. 
 Before enabling OTA updates, all sensors work correctly</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 16 Dec 2025 16:05:30 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/126080/i2c-issue-with-update-over-the-air" /><item><title>RE: I2C issue with update over the air</title><link>https://devzone.nordicsemi.com/thread/557125?ContentTypeID=1</link><pubDate>Tue, 16 Dec 2025 16:05:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:97f808b7-2209-49fd-bfff-8d8a33a5c524</guid><dc:creator>Alireza Asvadi</dc:creator><description>&lt;p&gt;Hi Hung,&lt;/p&gt;
&lt;p&gt;Thank you for your reply. I have resolved the issue by disabling the external flash, which corrected the behaviour. When the external flash is enabled, additional pulses appear on the SDA line, and these pulses interfere with the sensor&amp;rsquo;s operation&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Alireza&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2C issue with update over the air</title><link>https://devzone.nordicsemi.com/thread/556996?ContentTypeID=1</link><pubDate>Mon, 15 Dec 2025 14:50:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d6659d0e-7b16-4211-b3ec-d67270cf77eb</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Alireza,&amp;nbsp;&lt;br /&gt;I would suggest to check if&amp;nbsp; you have used the internal pull up on the pin or not.&amp;nbsp;&lt;br /&gt;You should also try to find a sequence that can reset the I2C device. Does it have a reset pin ?&amp;nbsp;&amp;nbsp;&lt;br /&gt;I am not so sure why enabling&amp;nbsp;&lt;code&gt;CONFIG_BT_PERIPHERAL&lt;/code&gt;&lt;span&gt;&amp;nbsp; would trigger the pulses.&amp;nbsp;&amp;nbsp;&lt;br /&gt;Could you let me know what kind of reset used in the test ? Was it pin reset or power reset or softreset ?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2C issue with update over the air</title><link>https://devzone.nordicsemi.com/thread/556931?ContentTypeID=1</link><pubDate>Sun, 14 Dec 2025 12:39:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dbac3be7-59b7-4404-be98-09ed34420604</guid><dc:creator>Turbo J</dc:creator><description>&lt;p&gt;Redesign.&lt;/p&gt;
&lt;p&gt;The bus will go high impedance during device resets and work as an antenna, there is &lt;strong&gt;NOTHING&lt;/strong&gt; you can do to prevent that here. Software will only run &lt;em&gt;after&lt;/em&gt; hardware reset procedure finishes.&lt;/p&gt;
&lt;p&gt;You could try running&amp;nbsp;&lt;code&gt;i2c_recover_bus()&lt;/code&gt; at app start before communicating with the device. Should un-block the bus if the device was stuck in a random bus state.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2C issue with update over the air</title><link>https://devzone.nordicsemi.com/thread/556925?ContentTypeID=1</link><pubDate>Sun, 14 Dec 2025 03:10:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ca34c6ec-2aee-4cd8-82f8-cc2454e4e967</guid><dc:creator>Alireza Asvadi</dc:creator><description>&lt;p&gt;I have another question: is it possible to enable &lt;code data-start="100" data-end="122"&gt;CONFIG_BT_PERIPHERAL&lt;/code&gt; at runtime? We need this feature for our device, but when it is disabled, the unwanted pulses disappear. My thought was to disable it in the configuration file and enable it later at runtime to see if that would resolve the issue.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2C issue with update over the air</title><link>https://devzone.nordicsemi.com/thread/556923?ContentTypeID=1</link><pubDate>Sat, 13 Dec 2025 23:27:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:30bdc08b-035b-48a6-9152-e53810a7fc28</guid><dc:creator>Alireza Asvadi</dc:creator><description>&lt;p&gt;Hi Thanks you for your response,&lt;/p&gt;
&lt;p&gt;No, we don&amp;rsquo;t have external pull-up resistors, and it&amp;rsquo;s difficult to add them at this stage. I tried using &lt;code data-start="160" data-end="170"&gt;gpio-hog&lt;/code&gt; in my DTS&amp;mdash;both in the main application and in the MCUboot DTS&amp;mdash;but it did not work. Do you know why this might be happening?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Alireza&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2C issue with update over the air</title><link>https://devzone.nordicsemi.com/thread/556915?ContentTypeID=1</link><pubDate>Sat, 13 Dec 2025 07:13:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5564911f-299d-404c-83d0-23caf6af37ae</guid><dc:creator>Turbo J</dc:creator><description>&lt;p&gt;SCL analog curve looks terrible - I am surprised that this works at all. SDA analog curve does not look anywhere close to the digital near those &amp;quot;spikes&amp;quot;.&lt;/p&gt;
&lt;p&gt;Do you have external pullup resistors on the bus? The internal pullups in NRF chips are a little too small for proper I&amp;sup2;C bus operation.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2C issue with update over the air</title><link>https://devzone.nordicsemi.com/thread/556913?ContentTypeID=1</link><pubDate>Fri, 12 Dec 2025 23:17:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3bc8064b-d3cd-4cb8-bead-aff2ae9d5951</guid><dc:creator>Alireza Asvadi</dc:creator><description>&lt;p&gt;Hi again,&lt;/p&gt;
&lt;p&gt;I just noticed that when I enable&amp;nbsp;CONFIG_BT_PERIPHERAL = y, this issue appears.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2C issue with update over the air</title><link>https://devzone.nordicsemi.com/thread/556909?ContentTypeID=1</link><pubDate>Fri, 12 Dec 2025 20:23:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:82fb531f-e103-42e4-8c01-7ab1839bc2a9</guid><dc:creator>Alireza Asvadi</dc:creator><description>&lt;p&gt;I have the same DTS in the bootloader and main app.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2C issue with update over the air</title><link>https://devzone.nordicsemi.com/thread/556908?ContentTypeID=1</link><pubDate>Fri, 12 Dec 2025 20:16:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5f1deb65-20a2-48e5-84bc-e67c6696e83f</guid><dc:creator>Alireza Asvadi</dc:creator><description>&lt;p&gt;&amp;nbsp;Hi&amp;nbsp;&lt;span&gt;Hung Bui,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I wrote another simple test program to simulate those two unwanted pulses. When the I2C peripheral is enabled, I lose direct control over the GPIOs on the I2C bus, so for testing, I used a basic GPIO library to manually generate similar pulses on P0.18 and P0.30.&lt;/p&gt;
&lt;p&gt;First, regarding the TMD2636 proximity sensor: it uses the very first I2C command only to configure its I2C address. It does not respond to that command; it only starts acknowledging from the second command. In other words, the first command is essentially a dummy write used for initialization.&lt;/p&gt;
&lt;p&gt;In the first screenshot (no extra pulses), the sensor behaves correctly &amp;mdash; it sends an ACK right after the first dummy command, and it continues acknowledging from the second command as expected.&lt;/p&gt;
&lt;p&gt;In the second screenshot, I added two pulses identical to the ones generated when OTA is enabled. As you can see, when those two pulses occur, the sensor gets stuck and never sends any ACK.&lt;/p&gt;
&lt;p&gt;My question is: when OTA is enabled, how can I prevent those two pulses on the I2C lines during boot?&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&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/pastedimage1765569794974v4.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&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/pastedimage1765570268640v5.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Alireza&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2C issue with update over the air</title><link>https://devzone.nordicsemi.com/thread/556905?ContentTypeID=1</link><pubDate>Fri, 12 Dec 2025 18:45:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c902dd8b-6d65-42b6-8082-803c561ae503</guid><dc:creator>Turbo J</dc:creator><description>&lt;p&gt;Check config and DTS in your bootloader. You probably need a custom overlay for mcuboot.&lt;/p&gt;
&lt;p&gt;The sample code pulls a ton of stuff in by default including QSPI&amp;nbsp; IIRC.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2C issue with update over the air</title><link>https://devzone.nordicsemi.com/thread/556903?ContentTypeID=1</link><pubDate>Fri, 12 Dec 2025 18:17:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e53eff5e-53b1-4089-b737-bd0d9da2c775</guid><dc:creator>Alireza Asvadi</dc:creator><description>&lt;p&gt;&lt;span&gt;Hi again,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I am using a very simple program that repeatedly reads the proximity sensor&amp;rsquo;s device ID. During testing, I noticed that when OTA is enabled, there are two unexpected pulses on the I&amp;sup2;C lines during the boot sequence. These pulses appear before my application starts and may be causing the proximity sensor to enter a bad state. When OTA is disabled, these pulses do not appear at all.&lt;/p&gt;
&lt;p&gt;I have attached the .sal file from the logic analyzer for reference.&lt;/p&gt;
&lt;p&gt;My question is: How can I prevent or eliminate these pulses during the boot phase when OTA is enabled?&lt;/p&gt;
&lt;p&gt;&lt;span&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/pastedimage1765562887540v1.png" alt=" " /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&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/pastedimage1765563198458v2.png" alt=" " /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/OTA-enabled-boot.sal"&gt;devzone.nordicsemi.com/.../OTA-enabled-boot.sal&lt;/a&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/OTA-disabled-boot.sal"&gt;devzone.nordicsemi.com/.../OTA-disabled-boot.sal&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2C issue with update over the air</title><link>https://devzone.nordicsemi.com/thread/556897?ContentTypeID=1</link><pubDate>Fri, 12 Dec 2025 15:24:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:669f239e-b5c0-4462-81e2-a260978f684e</guid><dc:creator>Alireza Asvadi</dc:creator><description>&lt;p&gt;Hi Hung Bui,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks for your response,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Because the PCB is already designed and manufactured, we cannot change the GPIO routing on our board. However, I tested the same firmware on the Nordic development kit using different I&amp;sup2;C pins, and it works correctly with those alternate pins. As I mentioned earlier, we have two other sensors on the same I&amp;sup2;C bus, and they both work fine regardless of whether OTA is enabled or disabled.&lt;/p&gt;
&lt;p&gt;I will send you the SAL file that can be opened with Saleae Logic Analyzer, and I&amp;rsquo;ve also attached the screenshots. In case you cannot open the (.sal) file, the screenshots clearly show the issue:&lt;/p&gt;
&lt;p&gt;With OTA enabled, previous I&amp;sup2;C transactions on the bus receive proper ACKs, but the proximity sensor (I&amp;sup2;C address 0x39) does not acknowledge.&lt;/p&gt;
&lt;p&gt;With OTA disabled, the TMD2636 receives and returns the expected ACK.&lt;/p&gt;
&lt;p&gt;From my perspective, if this GPIO pin were actually being used or overridden by OTA, then all sensors on the bus should stop working. However, the other two sensors continue to communicate normally, which makes the issue more confusing.&lt;/p&gt;
&lt;p&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/pastedimage1765552693490v3.png" alt=" " /&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/pastedimage1765552557930v2.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/OTA-enabled.sal"&gt;devzone.nordicsemi.com/.../OTA-enabled.sal&lt;/a&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/OTA-disabled.sal"&gt;devzone.nordicsemi.com/.../OTA-disabled.sal&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2C issue with update over the air</title><link>https://devzone.nordicsemi.com/thread/556832?ContentTypeID=1</link><pubDate>Fri, 12 Dec 2025 08:00:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4c8e0e19-1908-4a66-97e0-c145acbf49ca</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Alireza,&amp;nbsp;&lt;br /&gt;I suspect that my enabling&amp;nbsp;CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU you may have enabled external flash which use pin P0.18 as CS pin.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Could you try a quick test to use other pins for the&amp;nbsp;TMP117&amp;nbsp; ?&amp;nbsp;&lt;br /&gt;Also could you record a longer trace to see if there is other activity on SCL, SDA&amp;nbsp; when the chip boot up ?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>