<?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>How program serialnumber on nRF54L15 in factory setup</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/119477/how-program-serialnumber-on-nrf54l15-in-factory-setup</link><description>Hi Nordic support 
 We have ealier used your legasy SDK16.0 on nRF52840 where we where programming our device serial number in the UIRC area. 
 NRF_UICR-&amp;gt;CUSTOMER[0-4] where NRF_UIRC is at adress 0x10001000UL 
 It was done by generating a small hex file</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 30 Oct 2025 07:50:22 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/119477/how-program-serialnumber-on-nrf54l15-in-factory-setup" /><item><title>RE: How program serialnumber on nRF54L15 in factory setup</title><link>https://devzone.nordicsemi.com/thread/552850?ContentTypeID=1</link><pubDate>Thu, 30 Oct 2025 07:50:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:04c19d8d-9416-48cb-87a3-40b2895364e3</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Emil,&amp;nbsp;&lt;br /&gt;Thanks for your feedback. I agree that it&amp;nbsp;is a bit confusing. But if you have a look at section 4.2.9 UICR you can find that it&amp;#39;s mentioned that the OTP is an &amp;quot;emulated one-time programmable (OTP)&amp;quot;. So it&amp;#39;s not real OTP but emulated meaning it can be erased when doing an &amp;quot;erase all&amp;quot; operation.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How program serialnumber on nRF54L15 in factory setup</title><link>https://devzone.nordicsemi.com/thread/552660?ContentTypeID=1</link><pubDate>Tue, 28 Oct 2025 14:47:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:efc9b89c-5b2c-472d-9866-0bf6753632cc</guid><dc:creator>Emil Lenngren</dc:creator><description>&lt;p&gt;I have a request that you make it clear in the documentation that even though it&amp;#39;s called OTP, it can actually be rewritten if you perform an erase all operation. The text &amp;quot;&lt;span&gt;it is possible only once after an erase all operation&amp;quot; doesn&amp;#39;t logically imply that an erase all would also reset OTP. Your AI bot believed that OTP actually was one-time-programmable and that erase all wouldn&amp;#39;t reset it.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How program serialnumber on nRF54L15 in factory setup</title><link>https://devzone.nordicsemi.com/thread/552656?ContentTypeID=1</link><pubDate>Tue, 28 Oct 2025 14:34:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1ed87c3e-0449-43f8-9f37-278b774b36ec</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Tommy,&amp;nbsp;&lt;br /&gt;Thanks for your patience,&amp;nbsp;regarding the OTP reserved for customer use, there is now&amp;nbsp;a PR:&amp;nbsp;&lt;br /&gt;&lt;a href="https://github.com/nrfconnect/sdk-nrf/pull/24686"&gt;https://github.com/nrfconnect/sdk-nrf/pull/24686&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can find the draft documentation here:&amp;nbsp;&lt;a href="https://ncsdoc.z6.web.core.windows.net/PR-24686/nrf/app_dev/device_guides/nrf54l/otp_map_nrf54l.html"&gt;https://ncsdoc.z6.web.core.windows.net/PR-24686/nrf/app_dev/device_guides/nrf54l/otp_map_nrf54l.html&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;There are 32x4 bytes available at the bottom of the OTP area.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How program serialnumber on nRF54L15 in factory setup</title><link>https://devzone.nordicsemi.com/thread/526140?ContentTypeID=1</link><pubDate>Thu, 06 Mar 2025 11:51:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bce57fd8-b4b0-42ef-8ecc-def2ffc029d6</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Tommy,&amp;nbsp;&lt;br /&gt;I has reported the request internally. The team is looking at it. But I am not sure if we will have a solution available in your time frame.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;From my point of view, if you decide to use the OTP for the purpose, the biggest risk is when we start using it in the future for other modules in NCS and you need to do DFU update there can be a conflict. &amp;nbsp;&lt;br /&gt;When you do&amp;nbsp;DFU update to the newer firmware and there will be a chance that the firmware will try to write to the OTP registers that you already written.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;However the chance is quite small, from my point of view, as you only use 4 out of 320 registers. And there still a solution that you can modify the firwmare to avoid using the same area before you do DFU update.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;I would suggest if we don&amp;#39;t come up with a office solution,&amp;nbsp; you can just use the OTP (if using the flash is proven to be too much work). My suggestion is to choose the registers at the bottom of the OTP area.&amp;nbsp;&lt;br /&gt;This is just my personal suggestion, as the proper way of doing this for now is still using flash. I can&amp;#39;t guarantee it will not cause any problem in the future.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How program serialnumber on nRF54L15 in factory setup</title><link>https://devzone.nordicsemi.com/thread/525943?ContentTypeID=1</link><pubDate>Wed, 05 Mar 2025 11:03:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:76119e93-2c0f-4d6c-88d8-4ca187e3f3d3</guid><dc:creator>Tommy F Kristensen</dc:creator><description>&lt;p&gt;&lt;span&gt;Hi Hung Bui&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thanks for you answer.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;We are planning to go into mass a month from now, so we would really appriciate that this could be prioritized.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;We are using the serial numbers as unique identifiers of our products in the system, so it is quite important that we have a&amp;nbsp; solution.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;We only need 4 32 bit registers, to store the data in, so if you have some of the OTP registers that could be reserved to the costumer it would be great&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Best Regards&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Tommy&amp;nbsp; F Kristensen&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How program serialnumber on nRF54L15 in factory setup</title><link>https://devzone.nordicsemi.com/thread/525899?ContentTypeID=1</link><pubDate>Wed, 05 Mar 2025 09:13:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bbcabf30-fdaa-4e97-8f18-e046793aa7ae</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Tommy,&amp;nbsp;&lt;br /&gt;I&amp;#39;m aware of the OTP register in the UICR. But the reason that the name changed from&amp;nbsp;CUSTOMER[] to OTP[] is that the OS/drivers will also use some of the registers to store data. We are working on defining where the safe location for custom user data is.&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How program serialnumber on nRF54L15 in factory setup</title><link>https://devzone.nordicsemi.com/thread/525758?ContentTypeID=1</link><pubDate>Tue, 04 Mar 2025 14:28:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:07f75558-9177-4003-b094-1b8ad28299ac</guid><dc:creator>Tommy F Kristensen</dc:creator><description>&lt;p&gt;Hi Hung Bui&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Im loooking into if it is possbile to store the serial number and other factory specific data in the UICR -&amp;gt;OTP area.&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/pastedimage1741098226494v2.png_2D00_640x480.png_2D00_640x480.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;It has 320 adresses reserved for OTP.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I will use the nrfutil to set the serial numner&lt;/p&gt;
&lt;p&gt;nrfutil device x-write --address 0x00FFD504 --value 0x0100FF19&lt;/p&gt;
&lt;p&gt;or&amp;nbsp;&lt;/p&gt;
&lt;p&gt;nrfjprog&amp;nbsp; --program serial.hex // that flashes the hexfile containing the serial number etc for the device&lt;/p&gt;
&lt;p&gt;Then read it back in the code like this&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/pastedimage1741098450245v3.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best Regards&lt;/p&gt;
&lt;p&gt;Tommy F Kristensen&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How program serialnumber on nRF54L15 in factory setup</title><link>https://devzone.nordicsemi.com/thread/525743?ContentTypeID=1</link><pubDate>Tue, 04 Mar 2025 13:53:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9c25c242-c74e-4206-a4f6-43e453a1e025</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Tommy,&amp;nbsp;&lt;br /&gt;&lt;br /&gt;This is something we are looking at to find a solution.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Until we find a better solution you will need to use the flash area to store the serial number. You can either store it using&amp;nbsp;NVS or Settings, or other nonvolatile module to store the serial number.&amp;nbsp;&lt;br /&gt;It can be a challenge if you also use the module to store other data because NVS or settings will move the data around for garbage collection,&amp;nbsp;wear leveling.&amp;nbsp;&lt;br /&gt;If you configure a partition only for storing the manufacturing data separated from any other flash activity in the application and don&amp;#39;t do any other activity on the partition,I think it should be safe. And you should be able to use the programmer to write a hex file directly to the partition&amp;#39;s address.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>