<?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>Questions when mass producing a custom PCB and firmware that has similar functionality and different device info</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/27182/questions-when-mass-producing-a-custom-pcb-and-firmware-that-has-similar-functionality-and-different-device-info</link><description>Hi there~. This is Matthew! I saw a thread explaining that the production variants of the nRF52840 will first be available Q4 2017 at this link . 
 I was planning for BLE RC Car mass production that uses nRF52840 in the next year 2018. This RC Car uses</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 20 Oct 2017 07:12:04 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/27182/questions-when-mass-producing-a-custom-pcb-and-firmware-that-has-similar-functionality-and-different-device-info" /><item><title>RE: Questions when mass producing a custom PCB and firmware that has similar functionality and different device info</title><link>https://devzone.nordicsemi.com/thread/107098?ContentTypeID=1</link><pubDate>Fri, 20 Oct 2017 07:12:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b075e230-c49d-4fb3-8fb9-3eebbeef456f</guid><dc:creator>Matthew K</dc:creator><description>&lt;p&gt;Cool! Let me clear this and close this question :D&lt;/p&gt;
&lt;p&gt;&lt;code&gt;I can write a 64 value in the UICR register&lt;/code&gt; &lt;a href="https://devzone.nordicsemi.com/question/86306/program-uicr/?answer=86311#post-id-86311"&gt;like this&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;|&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Even though an HW/SW reset (like plugging out the battery) or BLE OTA occurs, the UICR retains the 64-bit value&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Right?! Thanks a trillion!!!!!!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Questions when mass producing a custom PCB and firmware that has similar functionality and different device info</title><link>https://devzone.nordicsemi.com/thread/107097?ContentTypeID=1</link><pubDate>Fri, 20 Oct 2017 04:18:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c7f8d30b-01e7-438f-acc2-3e39c4b2ee31</guid><dc:creator>RK</dc:creator><description>&lt;p&gt;no - the UICR persists across OTA updates.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Questions when mass producing a custom PCB and firmware that has similar functionality and different device info</title><link>https://devzone.nordicsemi.com/thread/107096?ContentTypeID=1</link><pubDate>Fri, 20 Oct 2017 04:08:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b5933148-6f67-4520-a69d-6480687e1913</guid><dc:creator>Matthew K</dc:creator><description>&lt;p&gt;Wow, that&amp;#39;s great, RK! I have one concern. Wil the written value (in flash or to the UICR) change after I update the firmware using BLE OTA or J-Link?&lt;/p&gt;
&lt;p&gt;The mobile app supports BLE OTA, so I was concerned which flash memory address would not affect the value.&lt;/p&gt;
&lt;p&gt;Considering the OTA update, will this flash/UICR method work?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Questions when mass producing a custom PCB and firmware that has similar functionality and different device info</title><link>https://devzone.nordicsemi.com/thread/107095?ContentTypeID=1</link><pubDate>Fri, 20 Oct 2017 02:08:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9c1ac151-1d5f-48a6-ae86-8c44a455ad13</guid><dc:creator>RK</dc:creator><description>&lt;p&gt;Well you could write to a given place in flash or to the UICR which has some space for customers to hold non-volatile data.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Questions when mass producing a custom PCB and firmware that has similar functionality and different device info</title><link>https://devzone.nordicsemi.com/thread/107094?ContentTypeID=1</link><pubDate>Fri, 20 Oct 2017 01:31:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:08c26676-a178-4e99-814b-f2943004e260</guid><dc:creator>Matthew K</dc:creator><description>&lt;p&gt;Hi there~ I haven&amp;#39;t understood your methods which uses the NVRAM (I guess you mean Non-Volatile RAM). I mean, is there any NVRAM in the nRF52840 or are you mentioning the RAM retention/to add external NVRAM and flash that external NVRAM with the J-Link?&lt;/p&gt;
&lt;p&gt;I think I have nearly figured out your 2nd method. For example,&lt;/p&gt;
&lt;p&gt;&lt;code&gt;non-configured device advertises the DIS service&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;|&lt;/p&gt;
&lt;p&gt;&lt;code&gt;the mobile app and the non-configured device pairs&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;|&lt;/p&gt;
&lt;p&gt;&lt;code&gt;the user choose the car type with the mobile app&lt;/code&gt; (or use other scenarios)&lt;/p&gt;
&lt;p&gt;|&lt;/p&gt;
&lt;p&gt;&lt;code&gt;this device now advertises NUS to tell it is a configured device and write the NVRAM&lt;/code&gt; (I still didn&amp;#39;t understand the NVRAM part though)&lt;/p&gt;
&lt;p&gt;What a clever idea! You were meaning something like this, right?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Questions when mass producing a custom PCB and firmware that has similar functionality and different device info</title><link>https://devzone.nordicsemi.com/thread/107093?ContentTypeID=1</link><pubDate>Thu, 19 Oct 2017 23:55:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6acce40a-fa60-4f70-b933-f01949240f2d</guid><dc:creator>RK</dc:creator><description>&lt;p&gt;you can use the same method you use for programming the chip (SWD) to write data into the client-use NVRAM. So at the point you decide what the body is going to be, you write a byte or a word of data into that location with a JLINK type device and then you seal the product up.&lt;/p&gt;
&lt;p&gt;There are other ways, you could program your firmware if the body type hasn&amp;#39;t been set to advertise a special characteristic, you then write to that characteristic once, store that in NVRAM, reset the device and now you have a programmed car.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Questions when mass producing a custom PCB and firmware that has similar functionality and different device info</title><link>https://devzone.nordicsemi.com/thread/107091?ContentTypeID=1</link><pubDate>Thu, 19 Oct 2017 16:03:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7cc2213f-065f-4923-9ac0-636a6886f919</guid><dc:creator>Matthew K</dc:creator><description>&lt;p&gt;However, it will best when the nRF52840 MCU can solve my problem by not relying on external sensors or serial memories. I thought there might be a firmware solution to solve my problem so I can get rid of the external memory.&lt;/p&gt;
&lt;p&gt;For instance, (1) can I set a 64-bit value(data related to the car) in the nRF52840&amp;#39;s flash using fstorage or other features from Nordic&amp;#39;s SDK? I want to set this value in the flash memory and I want this value to be unchangeable, whether I flash a new firmware using J-Link or BLE OTA.&lt;/p&gt;
&lt;p&gt;(2) use other features like Crytocell or Trustzone (I&amp;#39;m not sure if these are used for my purpose)&lt;/p&gt;
&lt;p&gt;Or (3) Nordic/IC distributor flashes the 64-bit value on flash or register before delivering (this might be the worst choice for both of us)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Using only the firmware, can my problem be solved? Or adding an external IC(sensor, memory, etc) is inevitable?&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Questions when mass producing a custom PCB and firmware that has similar functionality and different device info</title><link>https://devzone.nordicsemi.com/thread/107090?ContentTypeID=1</link><pubDate>Thu, 19 Oct 2017 15:47:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e8fb652a-f8aa-4d1b-9800-612ce1773685</guid><dc:creator>Matthew K</dc:creator><description>&lt;p&gt;Holy cow! You have opened my blinded eyes, Bjørn!&lt;/p&gt;
&lt;p&gt;&lt;code&gt;does the nrf52840 need to recognize the covering case only once or multiple times&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Only once! The client didn&amp;#39;t intend to change covering cases. The blue truck stays as the blue truck always. :D&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Some kind of cheap sensor that you can attach to the nrf52840 that will be able to tell the difference between different covering cases.&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;I will get rid of the USB feature and replace it using a serial flash memory!&lt;/p&gt;
&lt;p&gt;nRF52840 supports QSPI, so I will tell the serial memory vendor to pref-flash data related to the covering case and other data for the user before delivering the flash ICs.&lt;/p&gt;
&lt;p&gt;You are a live saver, Bjørn! :D&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Questions when mass producing a custom PCB and firmware that has similar functionality and different device info</title><link>https://devzone.nordicsemi.com/thread/107092?ContentTypeID=1</link><pubDate>Thu, 19 Oct 2017 10:31:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fc224e7d-01ba-4405-8e66-5dafedc0fb9c</guid><dc:creator>Bj&amp;#248;rn Kvaale</dc:creator><description>&lt;p&gt;Will it be possible to buy different covering cases for one car chassis? By this, I mean does the nrf52840 need to recognize the covering case only once or multiple times (i.e. if you change covering cases for example).&lt;/p&gt;
&lt;p&gt;One idea I have is to have some kind of QR scanner on your nrf52840 and have different QR codes on the different covering cases. But this would probably be quite expensive. I would recommend something similar to this, just cheaper. Some kind of cheap sensor that you can attach to the nrf52840 that will be able to tell the difference between different covering cases. That way, if your client wants more covering cases, it shouldn&amp;#39;t be an issue at all.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Questions when mass producing a custom PCB and firmware that has similar functionality and different device info</title><link>https://devzone.nordicsemi.com/thread/107089?ContentTypeID=1</link><pubDate>Thu, 19 Oct 2017 09:47:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:68513f9f-c70b-4545-afe7-5a8dafc85dd0</guid><dc:creator>Matthew K</dc:creator><description>&lt;p&gt;Hi there~. My client doesn’t want that scenario; the user has to scroll/search 40 items to choose the purchased car, an inconvenient scenario for the user.&lt;/p&gt;
&lt;p&gt;If the user bought 5 different types of RC cars, the user have to choose the covering case 5 times with the mobile app!&lt;/p&gt;
&lt;p&gt;Maybe creating a custom jig that reads the nRF52840’s 64-bit chip id with UART and sends it to a database is my next idea.&lt;/p&gt;
&lt;p&gt;Is there a better solution?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Questions when mass producing a custom PCB and firmware that has similar functionality and different device info</title><link>https://devzone.nordicsemi.com/thread/107088?ContentTypeID=1</link><pubDate>Thu, 19 Oct 2017 09:23:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:21bf78ca-fd3b-452e-800b-13730e565ec4</guid><dc:creator>Bj&amp;#248;rn Kvaale</dc:creator><description>&lt;p&gt;Couldn&amp;#39;t you just let the user input which case he/she is using in the app? Would be a lot easier than what you are suggesting.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>