This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF52833-DK blinky problem

Hello! I have the following issue with my nRF52833 board: I am in the first stage of working with it and I wanted to try the simple blinky example.

However, since there is no pca10100 hex file in the examples/peripheral/blinky/hex folder, I decided to load pca10040. Now, my board seems to be irresponsive, i.e. LED1 doesn't blink when the board is powered on. My questions are:

1. Is there any possibility to reset the board (so that I start again from scratch with my test)?

2. I suppose I didn't damage some internal circuit by loading the pca10040, but I'm not completely sure - since I don't know exactly what it does. Could you please explain me?

3. Is there any hex file for the nRF52833 board with pca10100? (although I still don't know what is the difference between all versions).

Thank you in advance!

Parents
  • Hello Jay,

    And thank you for your quick answer and for the attachments - really useful!!

    I tried the hex file which you provided me and it works, although it's not only LED1 that blinks, but all 4 of them have an interesting behaviour (I attached a short video with the board). I have some more questions now Slight smile

    1. Is there any way that I see the code of the hex file? I'm new and I'm trying to understand how this board and code works and afterwards try something on my own.

    2. So now, I want to get to know my nRF52840 board and run some pre-defined examples.

    But from my understanding, there are no pre-defined examples already done for this board, right? (but they will appear soon). If this is the case, I also consider buying another board, for which more documentation already exists and has many bugs fixed. For instance nRF52840 board can be an option - so that I can have at least a starting point with something that works already. :)

    Thank you again.

    Best regards,

    Marry

  • Hello Marry,

    Marry said:
    I tried the hex file which you provided me and it works, although it's not only LED1 that blinks, but all 4 of them have an interesting behaviour (I attached a short video with the board). I have some more questions now

    This is the intended behavior of the blinky example, the "LED 1 blink while advertising" comment was made with regards to the Heart Rate Monitor(HRS) example.

    Marry said:
    1. Is there any way that I see the code of the hex file? I'm new and I'm trying to understand how this board and code works and afterwards try something on my own.

    Unfortunately it is infeasible to go from the .hex file back to the original code, but if I am reading Jay's reply right he has not made any modifications to the SDK code for the .hex file he supplied - which means that you may see the code that generated the .hex in the SDK folder under /examples/peripheral/blinky.
    Are you using the Segger Embedded Studio IDE? If so, you can find the segger project under /examples/peripheral/blinky/pca10056/blank/ses.

    Marry said:
    2. So now, I want to get to know my nRF52840 board and run some pre-defined examples.
    Marry said:
    But from my understanding, there are no pre-defined examples already done for this board, right? (but they will appear soon). If this is the case, I also consider buying another board, for which more documentation already exists and has many bugs fixed. For instance nRF52840 board can be an option - so that I can have at least a starting point with something that works already. :)

    There is a number of examples available for the PCA10100 in the new SDK v.17(released last Friday), but it is somewhat more limited than what is available for the nRF52832 and nRF52840.
    Running PCA10056 .hex files on the PCA10100 works because blinky is such a simple example - just toggling the LEDs - but it will not work with the larger examples, since the PCA10056 has a nRF52840 SoC which has a bigger flash memory and ram. I can therefore not guarantee that it will work with all the examples, but as long as the nRF52833 has the peripherals used by the example and the example is within the size constraints it should work(at most maybe some GPIOs must be reconfigured).
    I gave this a try with the BLE peripheral Heart rate monitor(HRS) example, loading the nRF52833 DK with the s140_pca10056 and it seems to work as intended right off the bat.
    If you look into the HRS peripheral source code, familiarizing with it might seem a daunting task at first - but know that much of it is BLE connectivity configuration that you may reuse in your personal projects.

    If you are looking to familiarize yourself with the BLE development process, I highly recommend looking into the BLE advertising, BLE custom service and characteristic tutorials.
    The tutorial is unfortunately not updated for the PCA10100, but there exists a version for PCA10056 with S140.

    Please do not hesitate to let us know if you should encounter any other questions or issues!

    Best regards,
    Karl

  • Hello Karl!

    Your answer is indeed helpful, thank you so much! Yes, I am using SES. And now it is more clear to me that why the examples from the 52840 SoC are not running on my 52833.

    So, what do these PCA and SoftDevice contain? I suppose they are related to the SoC, since they differ between 52840 and 52833, but I am curious why Smiley

    SDK v.17(released last Friday)

    I did not know about this - so thanks!

    Running PCA10056 .hex files on the PCA10100 works because blinky is such a simple example - just toggling the LEDs - but it will not work with the larger examples, since the PCA10056 has a nRF52840 SoC which has a bigger flash memory and ram.

    OK, I understand, thanks a lot! Considering this, the best option for me is to just buy a development board which has the 53840 SoC, in order to run the predefined examples. Actually, the reason I chose this 53833 SoC was because it was advertised for its bluetooth low energy feature (but on a closer look, 53840 seems to have this too).

    f you are looking to familiarize yourself with the BLE development process, I highly recommend looking into the BLE advertising, BLE custom service and characteristic tutorials.

    That is extremly helpful, thank you very much!

    I will come back in a new post, as soon as I advance and I have new questions, thanks!

    Best wishes,

    Marry

  • Hello Marry!

    Marry said:
    Your answer is indeed helpful, thank you so much!

    No problem at all, I am happy to help!

    Marry said:
    So, what do these PCA and SoftDevice contain? I suppose they are related to the SoC, since they differ between 52840 and 52833, but I am curious why

    Totally understandable! The PCA stands for "Printed Circuit Assembly" and indicates what hardware you are using. So, each development kit has their own PCA number - since the peripherals of the SoC, and thus layout of circuitry, might be different.
    For example - as can be seen in the comparison document that Jay shared earlier - the nRF52840 SoC supports the QSPI peripheral, whilst the nRF52833 does not. This difference in SoC peripherals will be reflected in the development kit PCA(Printed Circuit Assembly) because the nRF52833 DK will have no need for the QSPI hardware, and vice versa.

    As for the SoftDevices they are Nordics proprietary implementation of the Bluetooth Low Energy stack. That is to say, the SoftDevice is the reason that you do not have to be concerned with manually timing your calls to the radio peripheral to maintain your BLE connection to another device. The SoftDevice handles all the BLE requirements for you.
    The SoftDevice's role will be better understood when you work with the tutorials I linked in my previous reply, since you will read more about these requirements there.

    Marry said:
    OK, I understand, thanks a lot! Considering this, the best option for me is to just buy a development board which has the 53840 SoC, in order to run the predefined examples.

    No problem! I would say that you definitely could get started with BLE development with your nRF52833 kit, but I also recognize the tremendous benefit of all the existing code and support for the nRF52840. I would recommend starting with the nRF5_2_840 if you are looking to buy another development kit. The nRF52840 definitely have more features and official examples existing for it than the nRF52833 at this time. Its bigger Flash and RAM size also allows for less constraints during the development. 

    To emphasize; I would not recommend that you get started with the nRF53840, since it is still not production ready - it is only available as a preview - and as such it also has a lot less material and supported existing code at this time. If I were to make a recommendation, I would instead recommend the nRF52840 DK - the nRF52840 SoC is the flagship of the nRF52 series, allowing for the most flexible development, and its not going anywhere anytime soon.

    Marry said:
    Actually, the reason I chose this 53833 SoC was because it was advertised for its bluetooth low energy feature (but on a closer look, 53840 seems to have this too).

    The Bluetooth Low Energy protocol(BLE) is what most of our products are centered around - so it is not limited to a single SoC for our case. You are correct in that the nRF53840 also is made for use with the BLE protocol. Additionally, all our SoC's has focus on being low energy in the operation in all other of its peripherals as well - ensuring that the devices get the longest possible lifespan in the field they are deployed.

    Marry said:
    That is extremly helpful, thank you very much!

    I am glad you think so. It is really no problem at all, I am happy to help you get started.
    The tutorials I referenced is a great way to get started developing BLE applications, because they guide you through the essential parts of BLE usage.

    Marry said:
    I will come back in a new post, as soon as I advance and I have new questions, thanks!

    Please do not hesitate to let us know if you should encounter any questions or issues in your development.
    If you have an issue, you may always open a new ticket for that issue here on the forum.

    Good luck with your development!

    Best regards,
    Karl

     

  • Hello Karl,

    I understand, thank you again.

    Indeed, I wanted to refer to nRF52840 (not the nRF53840). I had a typo, thank you very much for pointing that out.

    I will start with the recommended material, until later,

    Marry

  • Hello Marry,

    I am happy you found the information useful!

    Marry said:
    I had a typo, thank you very much for pointing that out.

    I suspected that this might have been the case, but I just wanted to make absolutely sure.

    Marry said:
    I will start with the recommended material, until later,

    That is great. Good luck with the material, and hope you have a great day!

    Best regards,
    Karl

Reply Children
  • Hello Karl! I hope I can still get in touch with you, because you have been the most  helpful person to me, thank you very much 100. I studied:

    which you suggested me, very helpful, so thanks a lot! And I've got the nRF52840 board. Now, I would like to ask for your opinion on the following issue:

    Having my development board and my thingys, it became clear that I should first implement my application on the dev_board, because the examples from the nRF5_SDK folder are suitable for that. Now, I would like to establish a communication between the development board and the phone. More specifically, I would like to write a bit in a register at a button press & receive a notification on the phone when this happens. I read a bit about this and from my perspective I have the following options:

    (1) I write my own code from scratch - not such a great option, considering the available resources from Nordic

    (2) I start where this tutorial ends, with sending a notification when the temperature has changed. - For my case, I would like to send a notification + write a bit in a register, when I press a button. The problem is that I am not sure how to write into the CUSTOMER registers. And I also don't know how I should do the button trigger. Do you think this would be a good starting point? 

    (3) Another option I found while looking on the NordicDevZone would be the alert notification application. But I am also not so sure about this approach, since the bits which are written while receiving so-called "mails" or "calls" are not used-defined, but rather imposed and not changeable. 

    Could you please give me an idea how I should start? There are so many possibilities, only if I had time to try everything Slight smile

    Thank you very much and best regards,

    Marry

  • Hello again Marry!

    I am terribly sorry for my late reply - I have been out of office for some time now. My apologies.

    Marry said:
    I hope I can still get in touch with you, because you have been the most  helpful person to me, thank you very much

    I am glad to hear you say that, thank you! It is no problem at all really, I am happy to help! Slight smile

    Marry said:
    Having my development board and my thingys, it became clear that I should first implement my application on the dev_board, because the examples from the nRF5_SDK folder are suitable for that.

    Yes, this is correct. The thingy is great as a rapid-prototyping platform, but when you start wanting to develop your own application - possibly using other hardware than the thingy provides - it is definitely better to develop on the Development Kit.

    Marry said:
    Could you please give me an idea how I should start? There are so many possibilities, only if I had time to try everything

    You really have done your research here, great!
    I concur that option 1 is the least desirable, since there already exists some examples for this.
    So, either option 2 or 3 should be done.
    To gain the best understanding along the way, while also achieving the same functionality I would perhaps suggest going for option 2 here - this way, you will already be familiar with most of the code you are working with from the tutorials you have completed, and also get familiar with merging other examples into your own code.
    To answer your questions about the approach in option 2: 

    Marry said:
    For my case, I would like to send a notification + write a bit in a register, when I press a button.

    You can change the temperature-notification that you mention, to instead be a button-press notification.
    The simplest implementation of a button press notification can be seen in the BLE Blinky peripheral example.
    The button trigger here will then be the press of a designated button on the DK, if I understood your question correctly.

    Marry said:
    The problem is that I am not sure how to write into the CUSTOMER registers.

    Could you elaborate on this - do you have a particular memory register designated for storing this one bit, and you are not sure how to access it? If so, please elaborate which register / memory location and functions you are using for this. 

    Alternatively, you may go for option 3 - which is closer to providing your sought after functionality right off the bat ( only some modifications required to the code ), but which will require you to familiarize with the code "from scratch".

    Once again I apologize for my late reply. I look forward to hearing your thoughts on this!

    Best regards,
    Karl

  • Hi Karl! It is absolutely fine! I imagined that the holiday season might be one reason for no reply Airplane

    Thanks for explaining me! This week I am having a break from the project, because I have exams - I will come back in a week with a complete reply. 

    Thank you very much & have a great week until then Sun with face

    Marry

  • Hello Marry,

    Thank you for your understanding!

    Marry said:

    Thanks for explaining me! This week I am having a break from the project, because I have exams - I will come back in a week with a complete reply. 

    Thank you very much & have a great week until then

    No problem, I hope you have a great week as well.

    For future reference, if the questions you have diverges from the original ticket you opened, then it would be best that you open a new ticket for the unrelated questions. You may also tag me in the ticket if it is a followup question to a previous ticket.
    Creating new, specific tickets will make it easier for others experiencing similar issues to navigate the forum.

    Good luck with your exams! :)

    Best regards,
    Karl

  • Hi Karl!

    Thank for your feedback! In the meantime, I abandoned the idea of writing a bit in a register. Because I found the Blinky Notification App - which you suggested as well. Now I am trying to understand the actual code, to do other modifications; and I opened new threads, like you said.

    My next step would be to integrate Thingys:52 as relay nodes, between the phone and the board. I created a new case here. Would you have any suggestions for that? 

    On the one hand - I think this feature is already there, in the code running on the boards.

    On the other hand - I would like to see where/how it is implemented

    may also tag me in the ticket

    - Thank you so much! I will do that Slight smile

    Thank you again for all your very valuable input! You are no.1 help on DevZone! TrophyBeer

Related