<?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>nrfx confusion and the state of documentation and examples</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/67340/nrfx-confusion-and-the-state-of-documentation-and-examples</link><description>I had my first encounter with Nordic chips a couple of years ago. To evaluate the devices, I used an nRF52832 to implement a small helper project. I was very impressed: it took me no more than 2 hours to get from zero to working code that interfaced with</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Sat, 24 Oct 2020 15:21:22 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/67340/nrfx-confusion-and-the-state-of-documentation-and-examples" /><item><title>RE: nrfx confusion and the state of documentation and examples</title><link>https://devzone.nordicsemi.com/thread/276738?ContentTypeID=1</link><pubDate>Sat, 24 Oct 2020 15:21:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dd80c359-1303-4a5d-98d6-a48af5e71c02</guid><dc:creator>Jan Rychter</dc:creator><description>&lt;p&gt;Thank you, Eirik, that is helpful information.&lt;/p&gt;
&lt;p&gt;So, given that I am starting a new project and that I will be doing several more (one with Bluetooth Mesh), are you recommending that I immediately start using nRF Connect instead of nRF5 SDK? That is what you seem to be saying (&amp;quot;NCS is now at a level where we recommend it for new designs&amp;quot;).&lt;/p&gt;
&lt;p&gt;I did a quick dive and apart from everything being much larger and more complex, it also seems that the examples and documentation specific to Nordic chips are even more limited than with nRF5 SDK. But, if this is the way forward, I will go ahead and go through the learning curve. I&amp;#39;d much rather do that than begin&amp;nbsp;development with something that is (slowly) on its way out.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrfx confusion and the state of documentation and examples</title><link>https://devzone.nordicsemi.com/thread/276483?ContentTypeID=1</link><pubDate>Thu, 22 Oct 2020 14:55:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c80ed678-064f-45d3-9494-c0b1cc429c25</guid><dc:creator>Eirik Midttun</dc:creator><description>&lt;p&gt;Hi Jan,&lt;/p&gt;
&lt;p&gt;Thanks for your feedback. We are aware that we are not where we need to be regarding the nRF Connect SDK and nrfx, and working to improve it. Detailed and honest feedback is vital for this. I cannot promise a quick fix, but I hope it will be reassuring that some of your concerns are addressed.&lt;/p&gt;
&lt;p&gt;First, we don&amp;#39;t plan to do frequent changes in our software platform. nRF5 SDK and SoftDevice has been around since 2013, and is still maintained, but since our product portfolio is getting more diverse we need to offer a different solution. I can understand the change seems quite radical now, but having a stable solution has been one of the main goals for NCS, which means we also need to consider what is coming in the future. This is mainly about the moment, not what should be expected for the future.&lt;/p&gt;
&lt;p&gt;From your description it seems you are working on a new project, in which case I would suggest nrfx drivers. Those are in active development. The legacy drivers are primarily for customer with an existing code base built on these driver APIs. Likewise, the nRF5 SDK have been maintained it for customer depending on it - as is, and until recently offered as the stable solution. NCS is now at a level where we recommend it for new designs.&lt;/p&gt;
&lt;p&gt;Supporting different architectures is something that is done well with the tools in NCS and Zephyr. That is the reason for the Python installation and related tools. The learning curve can be steep, but the result is flexible solution to adapt application to different targets. And this isn&amp;#39;t limited to Nordic. As application code get more complex this will be of increasing importance.&lt;/p&gt;
&lt;p&gt;I cannot speak for everyone, but I get the impression that NCS seems more scary than it actually is. I hope you will give it a second try, and I thank you for your patience.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrfx confusion and the state of documentation and examples</title><link>https://devzone.nordicsemi.com/thread/276358?ContentTypeID=1</link><pubDate>Thu, 22 Oct 2020 07:57:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:07f1a371-764d-417c-bab9-f2332b6e7128</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;I honestly believe this will improve, even though I don&amp;#39;t see a quick fix for the nrfx/sdk_config in nRF5 SDK. I have forwarded your feedback to the key persons that can best address this, and I know your bullet points will be discussed. Recurring issues like this should not occur. I can only say thank you for your feedback for now!&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;Kenneth&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrfx confusion and the state of documentation and examples</title><link>https://devzone.nordicsemi.com/thread/276233?ContentTypeID=1</link><pubDate>Wed, 21 Oct 2020 13:49:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:275fe05d-565d-434d-ad92-6db6bcc23c18</guid><dc:creator>Jan Rychter</dc:creator><description>&lt;p&gt;Kenneth &amp;mdash; if describing the drivers as &amp;quot;legacy&amp;quot; is misleading, then I would suggest not doing it.&lt;/p&gt;
&lt;p&gt;Thanks for the explanation, but I&amp;#39;m not sure if you realize how unclear it all sounds to people from the outside. I now understand *why* Nordic did the whole nrfx thing, but I still do not understand what the path forward is for me.&lt;/p&gt;
&lt;p&gt;Zephyr scares me with its complexity. I will have to use it one day because of the nRF9160, but I&amp;#39;m holding off for as long as I can.&lt;/p&gt;
&lt;p&gt;What I think vendors do not understand is that for us, designers and developers, &amp;quot;transitions&amp;quot; and &amp;quot;migrations&amp;quot; are the worst things ever. Taking the example of Freescale/NXP, their Kinetis software was going through &amp;quot;transitions&amp;quot; all the time, and the transitions were never &amp;quot;done&amp;quot;, they just overlapped. From a developer point of view, the software was always either &amp;quot;legacy/obsolete&amp;quot; or &amp;quot;being transitioned&amp;quot;, with the documentation never being up to date. And projects had a roughly two-year lifetime.&lt;/p&gt;
&lt;p&gt;Now I&amp;#39;m looking at Nordic and I&amp;#39;m beginning to see the same thing: an incomplete nrf_drv -&amp;gt; nrfx &amp;quot;transition&amp;quot; (which isn&amp;#39;t really a transition, except the old drivers are &amp;quot;legacy&amp;quot; and you should use the new ones, except you don&amp;#39;t have to, but only the new drivers have new features, etc). And on top of that there is the nRF5 SDK -&amp;gt; nRF Connect &amp;quot;transition&amp;quot; (sure, you can use the &amp;quot;old&amp;quot; SDK, but Zephyr is the way forward, but the old SDK is supported, but new features&amp;hellip; etc). This creates confusion, uncertainty and doubt.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;"&gt;I think my &amp;quot;here&amp;#39;s what I would do right now if I were Nordic&amp;quot; points still stand (*especially* the first four!).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Also, you wrote &amp;quot;&lt;span&gt;good input, and&amp;nbsp;&lt;/span&gt;something that I hope we can improve on&amp;quot; &amp;mdash; so, has any specific action been taken? Is there somebody tasked today with fixing the documentation? Writing nrfx examples? I&amp;#39;m asking, because I&amp;#39;m looking through these forums, and I see posts from TWO YEARS ago about insufficient nrfx examples and nrfx confusion. If nothing has been done so far, it doesn&amp;#39;t bode well for the future.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrfx confusion and the state of documentation and examples</title><link>https://devzone.nordicsemi.com/thread/275976?ContentTypeID=1</link><pubDate>Tue, 20 Oct 2020 14:24:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a3d1e23c-d37e-42a0-9475-ca6425ffbfd9</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;Not sure I have a good answer for you here, but nrfx was introduced (or a requirement if you like) when Nordic started supporting zephyr RTOS. In the process it was decided that our nrf drivers should use the nrfx hardware abstraction layer also, and the drivers from that point have been described as legacy. That is&amp;nbsp;though misleading, since the drivers in many cases can provide a slightly higher abstraction layer (that at least in some case) may be easier to work with, also there is no problem to continue to use the drivers in any way. There is no plans to obsolete or deprecate them from what I know, but if you are planning to transition to zephyr RTOS (part of the &lt;a href="http://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/index.html"&gt;nRF Connect SDK&lt;/a&gt;) then the legacy drivers you are familiar from the nRF5 SDK is not availble there (instead there are many other libraries that can be used if you don&amp;#39;t want to use the nrfx directly).&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;Kenneth&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrfx confusion and the state of documentation and examples</title><link>https://devzone.nordicsemi.com/thread/275882?ContentTypeID=1</link><pubDate>Tue, 20 Oct 2020 11:46:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d2f09d88-5157-42f1-9aeb-58d07fd4789e</guid><dc:creator>Jan Rychter</dc:creator><description>&lt;p&gt;Kenneth &amp;mdash; I did read that page, and it didn&amp;#39;t clarify much for me. The next paragraph after the one you quoted says:&lt;/p&gt;
&lt;p&gt;&amp;quot;If you want to continue using the nrf_drv drivers, no changes are required. You can use the drivers as before, but without taking advantage of any new functionalities introduced to the nrfx drivers.&amp;quot;&lt;/p&gt;
&lt;p&gt;But I do want the &amp;quot;new functionalities&amp;quot;! (I think) &amp;mdash; I am now beginning development of code that I will need to extend and maintain for years. As I have to go through a learning curve anyway, I&amp;#39;d much rather do it for the Officially Strategically Future-Proof API. And that web page does not clarify which API it is.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;"&gt;Looking at the TWI driver, it seems for example that the nrfx one has a function that can recover a stalled bus, and the &amp;quot;legacy&amp;quot; one does not.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I wanted to quickly check that, but I can&amp;#39;t even find the right place in the documentation: going into &amp;quot;Software Development Kit &amp;gt; nRF5 SDK v17.0.2 &amp;gt; Hardware Drivers &amp;gt; Drivers descriptions&amp;quot; and choosing &amp;quot;TWI master&amp;quot; lands me in a page which describes the &amp;quot;legacy&amp;quot; nrf_drv API. To confuse things even more, this page also says:&lt;/p&gt;
&lt;p&gt;&amp;quot;The driver layer provides APIs on a higher level than the HAL. See the API documentation for the TWI driver - legacy layer for details.&amp;quot;&lt;/p&gt;
&lt;p&gt;So, which layer is the &amp;quot;legacy&amp;quot; layer again?&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;"&gt;If you search the forums, you will find many posts from users confused about nrfx. Some of the posts are from more than two years ago, and the confusion still remains.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrfx confusion and the state of documentation and examples</title><link>https://devzone.nordicsemi.com/thread/275614?ContentTypeID=1</link><pubDate>Mon, 19 Oct 2020 12:21:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5c3e3b54-a8e4-47df-8a2b-b7fe9db6ec32</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;I think some of your input have been taken into account in the latest nRF5 SDK:&lt;br /&gt;&lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.0.2/nrfx_migration_user_guide.html"&gt;https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.0.2/nrfx_migration_user_guide.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;quot;&lt;span&gt;The migration process is not required and often results in exactly the same functionality. Consider migration only if you want to take advantage of the new features offered by nrfx.&lt;/span&gt;&amp;quot;&lt;/p&gt;
&lt;p&gt;In terms of DMA or not to DMA; I would consider using DMA for all transactions where you don&amp;#39;t need or want to analyze data during the transaction.&lt;/p&gt;
&lt;p&gt;More examples, tutorials and blog posts on best practices is good input, and something that&amp;nbsp;I hope we can improve on.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>