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

Adapting examples for NRF52840 dongle PCA10059

Greeting to Nordic Team!

I'm new to nordic devices as well as Q&A section, so apologies in advance if I make any mistakes raising a question.

Two things I would like to discuss:

Intro and adaptions I have made so far:

I have got two NRF52840 dongle, but no nrf52DK. I have downloaded and installed nrfConnect, Segger Embedded Studio, and SDK 15.2.0 as well as SDK15.3.0 (I wasn't sure which one I will be needing)I have gone through coule of tutorials fro BLE and Adapting examples for dongle links as follows:

1. https://devzone.nordicsemi.com/nordic/short-range-guides/b/bluetooth-low-energy/posts/ble-advertising-a-beginners-tutorial

2. https://devzone.nordicsemi.com/nordic/short-range-guides/b/bluetooth-low-energy/posts/ble-services-a-beginners-tutorial

3. https://devzone.nordicsemi.com/nordic/short-range-guides/b/bluetooth-low-energy/posts/ble-characteristics-a-beginners-tutorial

and finally for adapting examples for dongle

https://devzone.nordicsemi.com/nordic/short-range-guides/b/getting-started/posts/nrf52840-dongle-programming-tutorial

Example in use: blinky_app

The first problem :

      I faced was as guided in the dongle programming tutorial, I can't see any preprocessor definitions rather the it says "inherit" and when I click three dots besides it, I find the text box complete empty and nothing over there. Do I need to write all of the stuff shown in the tutorial by myself or it appears by itself and I just need to remove the PCA10056 and replace it with PCA10059. If so, why my preprocessor definitions seems empty. same is case with the linker option it says "inherit" and the text box for linker is empty. Please provide an explanation for this.

Also in a thread I read, I need to explicitly undefine the board I'm not using(in this case it would be PCA10056). Link https://devzone.nordicsemi.com/f/nordic-q-a/43760/adapting-the-blinky-example-from-the-nrf52840-dk-to-the-nrf52840-dongle/171455#171455. Do you confirm this? 

The main Issue:

    I wish to create a project on nrf52840 dongle that accepts data from android app and stores it on SD card and later retrive it and send it to the desktop computer, all these is expected to happen over BLE. One of my friend has created an android app which has a form like structure which accepts several information from the user like Name, age, address, nature of complaints, complaints, etc. So far I'm able to connect my NRF52840 dongle with the android app and nothing further than that. Which SDK examples should I refer for my project? Or do I need to write completely different program for my project? as said earlier this my first time working with NRF device previously I have extensively worked with Arduinos and ESPs.

waiting for timely help and valuable guidance. Thanks in advance

Parents Reply Children
  • Hi,

    You get the error because RX_PIN_NUMBER, TX_PIN_NUMBER, CTS_PIN_NUMBER and RTS_PIN_NUMBER are undefined. If you refer to components\boards\pca10056.h you will see that it is defined there (for the nRF52840 DK), which is because they are connected to the UART-USB bridge. The nRF52840 Dongle does not have a UART-USB bridge, and that is probably why they are not defined. So in order to use UART with the dongle, you just need to decide which pins you are using for UART, and add these defines to components\boards\pca10059.h with the correct pin numbers. Then you need to connect these pins to your UART device (for instance an external UART-USB bridge if connecting to a PC).

  • Can you assit me in pointing out to any document which explains this in bit more detail I am bit confused about its implementation right now. I want to connect the dongle to my PC and I want to receive data from android app to this dongle and view it on serial monitor software like arduino serial montor or any one similar to that.

    If I define any two pins as UART pins then how it would be possible? Should I then connect these pins to module like CP2102 and plug that module into the computer?Which example I should be using peripheral or the central Uart? or like what? Sorry if my question is too amateur but I'm really confused about this part

  • Hi,

    Chirantan Kansara said:
    Can you assit me in pointing out to any document which explains this in bit more detail I am bit confused about its implementation right now.

    I am not sure exactly where to start other than the examples I pointed to, but you can read more by browsing the Infocenter. Perhaps if you can elaborate on what more you need documentation for?

    Chirantan Kansara said:
    If I define any two pins as UART pins then how it would be possible?

    The UART peripheral on the nRF can use any GPIO's as UART pins. So you just need to define the pins in the same way it is done for other boards, as mentioned in my previous post. Use some pins that are unused and which you can easily access physically.

    Chirantan Kansara said:
    hould I then connect these pins to module like CP2102 and plug that module into the computer?

    Yes, for instance. Alternatively, you can replace the dongle with an nRF52840 DK if possible, as that would be a much better platform to develop on. This has an onboard USB-UART bridge as part of the onboard debugger. (Also, the debugger itself is crucial when debugging embedded code). Another option is to implement UART over USB on the nRF52840 dongle, as demonstrated by the USBD BLE UART Example.

  • I am not sure exactly where to start other than the examples I pointed to, but you can read more by browsing the Infocenter. Perhaps if you can elaborate on what more you need documentation for?

    Like where should I find the PCA10059.h for ble_app_uart. That's the example I will be using to receive the data from my android app right? if so, then I don't see any PCA10059.h file in it then how I am supposed to modify it?

    I have made a custom PCB where my Dongle is supposed to mount on it and I have attached two pins of dongle 0.29 as Rx and 0.31 as Tx and connected them to AVR microcotnroller which inturn is connected to SD card. So would it be possible if use ble_app_uart to receive data from android app via Dongle and pass it to AVR on serial So that my AVR can store it SD card? I can program the AVR. Just let me know if I am on the right track about using ble_app_uart for this purpose. If so, at which baudrate do I need to do this communication with AVR? AVR supports many baudrates but mostly used of them is 9600 can my dongle work on this baudrate?

    awaiting your reply

  • Hi,

    Chirantan Kansara said:
    Like where should I find the PCA10059.h for ble_app_uart. That's the example I will be using to receive the data from my android app right? if so, then I don't see any PCA10059.h file in it then how I am supposed to modify it?

    There is just one pca10059.h in the SDK, and that is located under <SDK>\components\boards\, which is the folder where all board files are located. As is the case with other header files, the file itself is not added to the project, but the folder is in the list of included directories. And the correct board file is seleceted based on the board define (BOARD_PCA10059).

    Chirantan Kansara said:
    I have made a custom PCB where my Dongle is supposed to mount on it and I have attached two pins of dongle 0.29 as Rx and 0.31 as Tx and connected them to AVR microcotnroller which inturn is connected to SD card. So would it be possible if use ble_app_uart to receive data from android app via Dongle and pass it to AVR on serial So that my AVR can store it SD card?

    Yes. Then you should update pca10059.h with these ports as explained before, or you can modify the example to use pins you specify rather than taking them from the board file. If you just add the two defines to your board file and make sure to disable flow control by defining HWFC to false (since you don't have those pins connected), everything should work out of the box.

Related