nRF52840 DK VS Adafruit nRF52840 Feather

Hi

I've been trying to get into Nordic's ecosystem using their SoCs but it's been a huge headache. Probably because they don't have their own IDE (like Microchip and STM have for example), or because they discontinued previous SDKs and all the tutorials found online are still made for the old SDKs and there is a huge lack of information/guides to the nRF Connect SDK which is based on zephyr build system and the amount of abstraction layers is gigantic (about this I also wonder how much more program memory and how much less energy efficient the generated programs are due to so many layers of abstraction idk).

I have been working with the nRF52840 DK which has an Onboard J-Link Segger and as a programming environment VS Code with nRF Connect SDK. When I do logs in nRF52840 DK, I found a serial port in VSCode and I can see the logs directly in the terminal (in some way, I believe this serial port is due the J-Link On board programmer). However, when I switch to Adafruit nRF52840 Feather and only change the board in the build process and then flash the board (I use a Segger J-Link Plus connected to the SWD pins to flash it) I can't find any serial port in VSCode and can't see any logs. 

Can anyone explain to me why? What is the difference between using a J-Link on board on the nRF52840 DK and using a J-Link Plus directly on the Adafruit nRF52840 Feather connected to the SWD connector? To be able to use the logs via USB (USB pheripheral of SoC and not USB from the J-Link programmer/debugger) on the Adafruit nRF52840 Feather board I follow the example found in zephyr/samples/subsys/usb/console to use the usb peripheral but I don't quite understand what it is doing and what changes the app.overlay file makes.

I started to question myself why not change to the STM ecosystem. Looks much more simple to have an IDE and use their HAL instead of the trying to learn the new nRF Connect SDK based on  zephyr build system, idk.

Parents
  • Do you have source code somewhere, or an example of how you are calling your log function?   Are you using the Nordic NRF_LOG_ functions, for example?

    I don't know how the Feather board works, but Adafruit mentions USB CDC on their web site, so I wonder if they are using that to print logging information.   With the nRF52 SDK I think you have to explicitly include the USB CDC firmware to use it.

    I am aware of two different ways to print logging information on the nRF52840-DK:

    1. With the SEGGER debugger, you can enable logging (NRF_LOG_* calls) with the RTT backend.  You bring up the RTT window with the Nordic software and observe the logging there.

    2. You can attach an external serial port and include the NRF52 uart firmware.  Connect the pins of the external serial port to your DK (typically USB-to-serial).

    I have used both methods on my project using the Nordic Dongle (nRF52840) with a SEGGER debugger.

    The Nordic development environment gives you great flexibility, lots of features, and potentially higher performance than what Adafruit gives you, at the cost of greater complexity.   You need to decide if the greater flexibility/features/performance is something you really need for your project.

Reply
  • Do you have source code somewhere, or an example of how you are calling your log function?   Are you using the Nordic NRF_LOG_ functions, for example?

    I don't know how the Feather board works, but Adafruit mentions USB CDC on their web site, so I wonder if they are using that to print logging information.   With the nRF52 SDK I think you have to explicitly include the USB CDC firmware to use it.

    I am aware of two different ways to print logging information on the nRF52840-DK:

    1. With the SEGGER debugger, you can enable logging (NRF_LOG_* calls) with the RTT backend.  You bring up the RTT window with the Nordic software and observe the logging there.

    2. You can attach an external serial port and include the NRF52 uart firmware.  Connect the pins of the external serial port to your DK (typically USB-to-serial).

    I have used both methods on my project using the Nordic Dongle (nRF52840) with a SEGGER debugger.

    The Nordic development environment gives you great flexibility, lots of features, and potentially higher performance than what Adafruit gives you, at the cost of greater complexity.   You need to decide if the greater flexibility/features/performance is something you really need for your project.

Children
No Data
Related