Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Difficult to use nRF5x SDK from scratch!

Whose idea was it to make creating a new project from scratch so difficult (if not impossible)????

I have created numerous projects using the nRF5x, but have always used an example project as the starting point.  However, when I want to do something that is in 2 different example projects, I have had a lot of trouble combining them.  And starting from scratch is impossible.  I am using it with IAR.

Why:

1. Mainly because of the sdk_config.h.  Trying to figure out what to enable or disable is very difficult.  Just for the UART/UARTE there are numerous enables.  All the color stuff makes no sense.  I never was able to make use of colors.

2. In order to move a project to a different directory either requires the entire sdk be brought with it, or redefining 1000's of includes paths in IAR's preprocessor options.  This is ridiculous.

3. There are a bunch of Define Symbols in IAR that don't make sense.  Having to recreate this for a scratch project is ridiculous.

4. TI does the above also, and I stopped using their sdk.

5. I have worked with numerous large software development companies that have written nRF5x projects.  They have all used example projects to get started because they say they can't figure it out either.

The API docs are OK, allowing me to do an include and start using the sdk calls, they are OK.  But having to read 25 documents and take 3 classes to create a scratch built project enviroment is not acceptable.

Parents
  • I created a base project from scratch and I store it in the master branch of gitlab, whenever I have new project, I will create a new branch from master. If you want the use it, I can share the gitlab repository with you, it is already be updated to 16.0.0 There are both advantages and disadvantages of creating a project from scratch:

    Advantages:

    1. You will understand the SDK + peripehral better and deeper.

    2. You can manage and develope your programme better.

    3. You learn to be more patient.

    4. Your reading skill and coding management skill is improved.

    Disadvantages:

    1. Time consuming.

    2. Hard to start for a newbie. I started using Nordic in July 2017 when I was a senior year student working on my thesis and I almost went crazy. But now I love Nordic Semi.

    3. You gonna go crazy when there is a new update comming.

    Just a small sharing with you. Hope you enjoy it.

    Best regards,

        Duy

Reply
  • I created a base project from scratch and I store it in the master branch of gitlab, whenever I have new project, I will create a new branch from master. If you want the use it, I can share the gitlab repository with you, it is already be updated to 16.0.0 There are both advantages and disadvantages of creating a project from scratch:

    Advantages:

    1. You will understand the SDK + peripehral better and deeper.

    2. You can manage and develope your programme better.

    3. You learn to be more patient.

    4. Your reading skill and coding management skill is improved.

    Disadvantages:

    1. Time consuming.

    2. Hard to start for a newbie. I started using Nordic in July 2017 when I was a senior year student working on my thesis and I almost went crazy. But now I love Nordic Semi.

    3. You gonna go crazy when there is a new update comming.

    Just a small sharing with you. Hope you enjoy it.

    Best regards,

        Duy

Children
  • I would be interested in you "base project".

    Recently, I have been writing my own simplified version of many of the libraries to avoid using the overly complex ones in the SDK.  For instance, I can turn on the LFCLK and configure it with a few register writes.  The SDK way involves multiple libraries and effect a number of other things that are not known unless you reverse engineer the SDK.

    The libraries provided by mBed and Arduino may not cover everything, but they are infinitely easier to use and configure!

Related