<?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 to identify SDK version?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/58577/how-to-identify-sdk-version</link><description>This question was asked a few years ago, but I don&amp;#39;t know if the feedback was incorporated. I&amp;#39;m working on SDK 16 and was wondering if there is an internal constant that identifies the SDK version that is released. The current version is 16.0.0_98a08e2</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 12 Jan 2022 13:05:48 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/58577/how-to-identify-sdk-version" /><item><title>RE: How to identify SDK version?</title><link>https://devzone.nordicsemi.com/thread/347380?ContentTypeID=1</link><pubDate>Wed, 12 Jan 2022 13:05:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2f7fe53b-8ae7-4110-a3f6-177b30bba94d</guid><dc:creator>tesc</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;nRF5 SDK is now in maintenance mode (see the &lt;a href="https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/nrf-connect-sdk-and-nrf5-sdk-statement"&gt;nRF Connect SDK and nRF5 SDK statement&lt;/a&gt;.) It means new features (such as this one) will not be implemented in that SDK.&lt;/p&gt;
&lt;p&gt;We are however looking into how this can be added to nRF Connect SDK.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Terje&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to identify SDK version?</title><link>https://devzone.nordicsemi.com/thread/347178?ContentTypeID=1</link><pubDate>Tue, 11 Jan 2022 13:34:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:aaaf1025-04c1-437e-848c-f90beb80c590</guid><dc:creator>StefXinet</dc:creator><description>&lt;p&gt;Sorry but If I have to track the SDK version number is not a solution.&lt;/p&gt;
&lt;p&gt;Knowing the version of code libraries and SDK is something that makes them more thrustable.&lt;/p&gt;
&lt;p&gt;I hope that you will implement it, its VERY easy (as you wrote), and other microcontroller producer already has it in their SDK.&lt;br /&gt;&lt;br /&gt;It&amp;#39;s about 8 years that the community reported this issue....&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/2494/how-to-identify-sdk-version"&gt;https://devzone.nordicsemi.com/f/nordic-q-a/2494/how-to-identify-sdk-version&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to identify SDK version?</title><link>https://devzone.nordicsemi.com/thread/347125?ContentTypeID=1</link><pubDate>Tue, 11 Jan 2022 10:42:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a830b7be-a95a-4b1f-be0e-4a2261496ab8</guid><dc:creator>tesc</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Thank you for the reminder on this issue.&lt;/p&gt;
&lt;p&gt;Unfortunately there is still no such mechanism in nRF5 SDK. There is a similar mechanism for the connectivity firmware used by pc-ble-driver, see the addition of the struct named &amp;quot;version_info_t&amp;quot; in the .patch files at &lt;a href="https://github.com/NordicSemiconductor/pc-ble-driver/tree/master/hex"&gt;https://github.com/NordicSemiconductor/pc-ble-driver/tree/master/hex&lt;/a&gt; for how this is added to the serialization example from the nRF5 SDK. The relevant code:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;typedef struct __attribute__((packed))
{
        uint32_t    magic_number;               /* Magic number to verify the presence of this structure in memory */
        uint32_t    struct_version     : 8;     /* Version of this struct format */
        uint32_t    rfu0               : 24;    /* Reserved for future use, shall be 0xFFFFFF */
        uint32_t    revision_hash;              /* Unique revision identifier */
        uint32_t    version_major      : 8;     /* Major version number */
        uint32_t    version_minor      : 8;     /* Minor version number */
        uint32_t    version_patch      : 8;     /* Patch version number */
        uint32_t    rfu1               : 8;     /* Reserved for future use, shall be 0xFF */
        uint32_t    sd_ble_api_version : 8;     /* SoftDevice BLE API version number */
        uint32_t    transport_type     : 8;     /* Connectivity transport type, 1 = UART HCI */
        uint32_t    rfu2               : 16;    /* Reserved for future use, shall be 0xFFFF */
        uint32_t    baud_rate;                  /* UART transport baud rate */
} version_info_t;
#if defined ( __CC_ARM )
static const version_info_t version_info __attribute__((at(0x50000))) = 
#elif defined ( __GNUC__ ) || defined ( __SES_ARM )
volatile static const version_info_t version_info  __attribute__ ((section(&amp;quot;.connectivity_version_info&amp;quot;))) = 
#elif defined ( __ICCARM__ )
__root    const version_info_t version_info @ 0x50000 = 
#endif
{
    .magic_number       = 0x46D8A517,
    .struct_version     = 2,
    .rfu0               = 0xFFFFFF,
    .revision_hash      = 0,
    .version_major      = APP_VERSION_MAJOR,
    .version_minor      = APP_VERSION_MINOR,
    .version_patch      = APP_VERSION_PATCH,
    .rfu1               = 0xFF,
    .sd_ble_api_version = NRF_SD_BLE_API_VERSION,
    .transport_type     = 1,
    .rfu2               = 0xFFFF,
    .baud_rate          = SER_PHY_UART_BAUDRATE_VAL,
};&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;You could add something similar yourself. However such a proprietary solution would mean that you would have to keep track of the mapping between struct and application version / SDK version / etc. yourself.&lt;/p&gt;
&lt;p&gt;There is currently no such mechanism in the nRF Connect SDK either, but I will report internally that this is something we should look into.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Terje&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to identify SDK version?</title><link>https://devzone.nordicsemi.com/thread/347077?ContentTypeID=1</link><pubDate>Tue, 11 Jan 2022 08:20:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c8ecc5a4-c52e-4aa7-a894-1b612dac25d5</guid><dc:creator>StefXinet</dc:creator><description>&lt;p&gt;Dear tesc,&lt;/p&gt;
&lt;p&gt;unfortunatly having the version in the txt file does not solve the problem.&lt;/p&gt;
&lt;p&gt;It would be better to have some #defines in code.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to identify SDK version?</title><link>https://devzone.nordicsemi.com/thread/237986?ContentTypeID=1</link><pubDate>Wed, 04 Mar 2020 10:14:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:df905c2d-f55d-46e8-abc0-3f74fdeb33ba</guid><dc:creator>tesc</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Indeed. That reminds me you do get a clue from the license text printed atop of the source files, from the end year of the copyright notice.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ll hear if we can include SDK version text as well, the same way we add the license text to source files as part of the release process.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Terje&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to identify SDK version?</title><link>https://devzone.nordicsemi.com/thread/237732?ContentTypeID=1</link><pubDate>Tue, 03 Mar 2020 12:38:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:af9746de-e0a6-4afd-a127-d5afa3e59c52</guid><dc:creator>awneil</dc:creator><description>&lt;p&gt;It would be useful to have some sort of SDK version in the SDK source, at least.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to identify SDK version?</title><link>https://devzone.nordicsemi.com/thread/237726?ContentTypeID=1</link><pubDate>Tue, 03 Mar 2020 12:33:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:94b16924-4424-4fce-b7b5-bbcbbc6f0ca2</guid><dc:creator>tesc</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;SDK version is reflected in the zip name (and thus default folder name when you extract it.) You can also find the version number listed in the release notes (&amp;lt;sdk folder&amp;gt;/documentation/release_notes.txt) and documentation overview page (&amp;lt;sdk folder&amp;gt;/documentation/index.html).&lt;/p&gt;
&lt;p&gt;There is no indication in hex files what SDK the firmware was made with, but for all SoftDevices there is a Firmware ID (FWID) that can be used to figure out SoftDevice version and variant, which again is indicative of SDK version.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Terje&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>