<?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>Clarify Documentation and Example for Custom Driver Implementation in Freestanding Applications</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/115435/clarify-documentation-and-example-for-custom-driver-implementation-in-freestanding-applications</link><description>Dear Nordic Team, 
 I&amp;#39;ve been working extensively on creating a custom sensor driver building on Zephyr&amp;#39;s sensor API. Throughout this process, I&amp;#39;ve utilized many available resources, including: 
 
 
 The Zephyr driver&amp;#39;s tutorial video YouTube 
 
 
 Example</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 21 Aug 2025 09:25:06 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/115435/clarify-documentation-and-example-for-custom-driver-implementation-in-freestanding-applications" /><item><title>RE: Clarify Documentation and Example for Custom Driver Implementation in Freestanding Applications</title><link>https://devzone.nordicsemi.com/thread/546319?ContentTypeID=1</link><pubDate>Thu, 21 Aug 2025 09:25:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:43a02ada-2784-4b33-b6c8-76e4dbeb8978</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;It is this one found here:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/Protocentral/protocentral_max30001_zephyr_driver"&gt;https://github.com/Protocentral/protocentral_max30001_zephyr_driver&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Please read the readme.md file. The west.yml file that it describes is either the one found in:&lt;/p&gt;
&lt;p&gt;NCS\zephyr\west.yml&lt;/p&gt;
&lt;p&gt;or&lt;/p&gt;
&lt;p&gt;NCS\nrf\west.yml.&lt;/p&gt;
&lt;p&gt;Try both (one at the time). Just add the&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;- name: MAX30001
      path: modules/protocentral_max30001
      revision: main
      url: https://github.com/Protocentral/protocentral_max30001_zephyr_driver&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;At the end of your &amp;quot;projects&amp;quot; list, with the same indentation as the other devices in the list, and then run &amp;quot;west update&amp;quot; in the folder that the west.yml file.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Clarify Documentation and Example for Custom Driver Implementation in Freestanding Applications</title><link>https://devzone.nordicsemi.com/thread/546274?ContentTypeID=1</link><pubDate>Thu, 21 Aug 2025 03:59:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5f93f121-c408-4624-bac4-b5e16feba09a</guid><dc:creator>bricle</dc:creator><description>&lt;p&gt;Hi, could you please provide the link to&amp;nbsp;&lt;span&gt;MAX30001 out of tree-zephyr driver? thanks.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Clarify Documentation and Example for Custom Driver Implementation in Freestanding Applications</title><link>https://devzone.nordicsemi.com/thread/526479?ContentTypeID=1</link><pubDate>Mon, 10 Mar 2025 07:36:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5ac68812-f481-4a3b-bc21-129c63280a93</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;I am not aware of any official guides, but you can look into how it is done with the MAX30001 out of tree-zephyr driver, that I tested once. That worked out of the box. (I didn&amp;#39;t have the sensor to test, but it built, at least).&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Clarify Documentation and Example for Custom Driver Implementation in Freestanding Applications</title><link>https://devzone.nordicsemi.com/thread/526251?ContentTypeID=1</link><pubDate>Thu, 06 Mar 2025 18:43:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:15f3c69d-4181-48bc-b1b0-72032df2fc8a</guid><dc:creator>rrainey</dc:creator><description>&lt;p&gt;I am very interested&amp;nbsp;seeing&amp;nbsp;this resolved this as well.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I really like working in nRF Connect / VS Code and I recently went through several Nordic training courses including the nRF Intermediate course.&amp;nbsp; In Exercise 1 in that course, it seems to&amp;nbsp;indicate that something changed between 2.5.0 and 2.6.0 that blocks support of device drivers in freestanding applications.&lt;/p&gt;
&lt;p&gt;I had a go at this anyway in my own work, and -- after a very long run of trial and error -- verified that there&amp;#39;s a fundamental problem (notes below).&lt;br /&gt;&lt;br /&gt;As has been pointed out, this is a fundamental issue.&amp;nbsp; Custom device drivers are probably the norm in real projects, not an exception.&amp;nbsp; I can fall back to the west command line or inject an ugly one-off fix, but then I can&amp;#39;t enjoy the other benefits of nRF Connect.&lt;br /&gt;&lt;br /&gt;Please help.&lt;br /&gt;&lt;br /&gt;Technical notes:&lt;/p&gt;
&lt;p&gt;After creating a custom device driver as part of a standalone project, I was facing the common&amp;nbsp;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;undefined reference to __device_dts_ord_&amp;lt;N&amp;gt;&amp;quot; link error (previously cited in this article).&amp;nbsp; I looked through many resources and -- for what it is worth, t&lt;a href="https://docs.zephyrproject.org/latest/build/dts/troubleshooting.html"&gt;his Zephyr document&lt;/a&gt; is the best resource.&amp;nbsp; In the end of my journey, I figured out that the device was correctly enabled but a bug in the CMake infrastructure was preventing the driver&amp;#39;s library from being included in the link step.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;I&amp;#39;m faced with a choice here: I could probably put in specific linker flags to include the library and this fix the inssure for me, but it would be far better to have the underlying issue addressed, no?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I really get a lot out of nRF Connect and would like to see this fixed.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thanks,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Riley&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Clarify Documentation and Example for Custom Driver Implementation in Freestanding Applications</title><link>https://devzone.nordicsemi.com/thread/506001?ContentTypeID=1</link><pubDate>Mon, 14 Oct 2024 04:58:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a5292f6a-f6bd-4b93-85da-f8c167dc78ea</guid><dc:creator>zhaw-moss</dc:creator><description>&lt;p&gt;Hi Edvin,&lt;br /&gt;&lt;br /&gt;Thank you for your response, and I appreciate you pointing out the section in the Developer Academy.&lt;br /&gt;&lt;br /&gt;You&amp;#39;re correct that there is a lesson about custom drivers in the Dev Academy. However, I noticed that for it to work, they define a &lt;em&gt;workspace application&lt;/em&gt;, which effectively creates a West workspace that redundantly downloads Zephyr and nRF Connect SDK. It also works specifically with the &lt;em&gt;ncs-example-application&lt;/em&gt;, whereas &lt;span style="text-decoration:underline;"&gt;all&lt;/span&gt; other samples don&amp;#39;t follow this approach and are set up as freestanding applications.&lt;br /&gt;&lt;br /&gt;If the intention is that all projects should be structured as workspace applications &amp;mdash; with Zephyr and ncs redundantly downloaded each time &amp;mdash; then it would make sense for all sample projects to be consistent with that approach. Additionally, the convenience features in the VS Code extension, such as the &lt;em&gt;Manage Toolchain&lt;/em&gt; and &lt;em&gt;Manage SDKs&lt;/em&gt; buttons, could potentially be streamlined, as a centralized instance of Zephyr and ncs wouldn&amp;#39;t be necessary. (Just a joke, please don&amp;#39;t do that!)&lt;br /&gt;&lt;br /&gt;On the other hand, if the freestanding application structure is still an intended and valid approach, then as I mentioned before, there should be clear documentation on how to integrate custom drivers properly in this context &amp;mdash;&amp;nbsp;&lt;strong&gt;as a Zephyr module&lt;/strong&gt;. It&amp;rsquo;s also a bit confusing that in the Dev Academy lesson on custom drivers, the setup involves a workspace application, while other lessons and samples &lt;span style="text-decoration:underline;"&gt;consistently&lt;/span&gt; use freestanding applications&amp;mdash;without explaining why this divergence exists.&lt;br /&gt;&lt;br /&gt;Also, in the documentation on the &lt;a href="https://docs.nordicsemi.com/bundle/nrf-connect-vscode/page/guides/applications.html"&gt;different types of application structures&lt;/a&gt;, there isn&amp;#39;t any clear information on the implications of choosing one structure over another, or why a workspace application might be preferred in specific situations.&lt;br /&gt;&lt;br /&gt;Perhaps I&amp;#39;ve overlooked some crucial documentation, but I think my point is clear: this inconsistency is confusing, and clarifying the reasoning or standardizing the approach would go a long way in improving the developer experience.&lt;br /&gt;&lt;br /&gt;Thank you again for considering my feedback, and I look forward to seeing how these materials evolve. &lt;span&gt;If there are no further actions needed from your side, please feel free to close the ticket.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Simon&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Clarify Documentation and Example for Custom Driver Implementation in Freestanding Applications</title><link>https://devzone.nordicsemi.com/thread/505886?ContentTypeID=1</link><pubDate>Fri, 11 Oct 2024 12:40:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:913e63b4-401b-4764-b10b-84abce69f0eb</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello Simon,&lt;/p&gt;
&lt;p&gt;Thank you very much for your detailed and constructive feedback. It is very valuable for us. I will forward your feedback to some relevant stakeholders.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I believe this is somewhat covered in our Developer Academy, in the &lt;a href="https://academy.nordicsemi.com/courses/nrf-connect-sdk-intermediate/lessons/lesson-7-device-driver-model/"&gt;NRF Connect SDK Intermediate course, Lesson 7&lt;/a&gt;. So in case you are not aware of the DevAcademy portal, you may find this useful in the future.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;However, I agree that this shouldn&amp;#39;t replace documentation.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>