zephyr samples and tutorials

I am having great difficulty with zephyr.  In particular I cannot build an application with any kind of random number generator in it.  However, this is just a special case of a larger problem.  In the connect sdk are a plethora of samples but, apparently there is no curator's guide as to what each one is.  It seems that one must open the main.c, if it exists, associated with each sample and try figure out what it does  It's like being given an Encyclopedia Britannica with the Table of Contents and Subject Index removed.  There must be a better way.

I am using VSCODE with the SDK Connect Extensions along with the associated toolchain. I cannot figure out, starting from scratch, how to set up a new project (application in Nordic parlance).  I need a simple step by step guide about how to do that.  There are several tutorials/guides on Nordic's website that claim to do that, but they all leave out crucial steps.

A VSCODE SDK Connect project has several files associated with it; I have no idea what these files are for or how they are set up.  I need a hitchhiker's guide to the structure of these projects.  There are, on here, documents that claim to do that, but, in fact, they do not.  They appear to have been written by those with expert knowledge because they explain things using esoteric terms and very abstract language.  I'm sure they all make perfect sense to those who know how things work, but to a novice, like me, they are just meaningless word salads, gibberish.

Getting back to Zephyr, I need a guide to the libraries, apparently the standard library naming conventions were not good enough for the developers so the names and locations have all changed; <stdio.h> is now somewhere else.

I have developed software for several different manufacturer's microcontrollers; STM, TI, Arduino, Raspberry Pi, and others all under VSCODE . They all use a toolchain very similar to yours,  There are quirks and peculiarities associated with all of these manufacturers software, but nothing serious, no show stoppers,  I could read and mostly understand their documentation; that is not the case for Nordic's.  When something goes wrong, and there is always something going wrong, I am helpless, I can't experiment, I can't find the relevant documentation and probably couldn't understand it even if I could.

Will one of you kind souls can help me.

  • Hi Jerry,

    Thank you for your comments and sharing your experience.

    Have you checked out the Nordic Academy? The nRF Connect SDK Fundamentals course is kept up to date and intends to give a focused and guided introduction to nRF Connect SDK/Zephyr using the SDK Connect Extensions. It probably won't answer all your questions but should give you a solid foundation to build on.

    We are currently looking into improving the developer experience and there are changes in the pipeline although I can't give any dates. Your feedback is noted.

    Hope this helps.

    Regards,
    Ketil

  • It would be helpful if NORDIC would stop dismissing cries for help by uttering a boiler plate responses such as was done here; it is perceived as insulting.  I am aware there is a ton of documentation, tutorials, and the like and I am sure, if given enough time, I could parse my way through all of the gobbledygook and figure these things out.  Your response is equivalent to "Read and understand the documentation"; not helpful.

    If you want to refer me to some documentation that might be helpful to me then refer me to something that describes creating a new project that is not based on your samples. I want to create my own main.c and all the other files necessary to compile, build, and debug it under VSCODE/nRF Connect SDK Extension; surely that exists somewhere.

    Something like:

    1) Create a new application

    2) Create a main.c file

    3) Create other files as would be needed.

    ...

    And a description of how it all fits together; in the style of "The ankle bone is connected to the shin bone, the shinbone is connoted to the thigh bone, ..."

    If I am to successfully use your development system I have to be able to fix things when things go wrong. For the most part I am having difficulty understanding how nRF_Connect_Extension works.  If I don't have that understanding then my only option is to seek help on <dev-zone> for every little issue; a waste of my time as well as yours.

  • Hello,

    Sorry to hear that the guide or the tutorial pointed in the first response was not useful for you. But I would like to point out something from same tutorial(if you missed it) which might be what you are looking for. In the 3rd lesson of the same tutorial the elements of the nRF connect SDK have been explained and it also points out how you can develop your application from the scratch (see that, no template from our sdk is used here). It's kind of bit hard to explain/Write everything in this portal i,e is the  main reason we are creating blogs and tutorials for better understandings. I have noted your feedback 

    Kind Regards,

    Abhijith

  • Hi Abhijith,

    I see what you are talking about, but I was looking for something where I could create a project using the GUI.  It may not be possible; maybe I don't understand what a template is; is there a "basic" template that just sets up a stub main.c file?  The lesson section you refer to sort of makes my head hurt the way things are explained and organized.  If I could get a "basic" project created I could experiment a little and figure out how it works.  It would be helpful if there were som kind of graphic illustration that shows the interrelationships between the various files and the build tool; kind of a big picture concept thing.

    I appreciate your attention to this matter and your comments.  As far as I'm concerned you may close this ticket or pursue it further at your option.

    Regards,

    Jerry 

  • Hello Jerry,

    I recommend the easiest way to get a basic project up and running, just using the GUI is to "open an existing application" and start experimenting. I always suggest to start with a template (a sample from our SDK) which have some of the features which you can relate, and then modify the same as per your use case. You can also refer to nRF Kconfig and nRF device tree extension in VS code for getting a Graphical view. But I am not sure whether this will suffice all your requirement but I am pointing what I think will help you for better understanding.

     

    Kind Regards,

    Abhijith

Related