Hello,
We are trying to upgrade two types of our existing projects with BLE connectivity. For simplifying this help-post, I’m referring only for the simplest project group. Basically our board has a sensor connected to an ADC which interrupts the CPU periodically with the converted results. The results are processed by the application SW on the board, and then sent to an application running on a PC, via USB connection. The PC application replies for each packet from the target, so it isn’t just a dump terminal.
So far:
1 - We bought two NRF52840 SDK board.
2 - Learned from two e-books: “Intro_to_Bluetooth_Low_Energy” and
“Bluetooth_5_and_Bluetooth_Low_Energy_-_A_Developer's_Guide” (by Mohammad Afaneh).
3 – We added (“wired”) our ADC and sensor to one of the NRF52840 SDK boards.
4 – Implemented the “Server” role on the first nfr52840 board according to the e-book guide, i.e. using
sdk 14.2.0. Also our original “target side” application was added to this board SW.
5 – Implemented the “Client” role on the second nfr52840 board according to the e-book guide, i.e.
using SDK 14.2.0.
6 – Now we can see all characteristics exposed by our user defined service, updated by our application
on the server board, in the debug window Segger Embedded Studio (SES), as well as in the “nrf
Connect” application, (Android and Windows).
7 – Expectedly, we want to forward this data to a PC application via USB, and optionally get some data in return from the PC.
However we are stuck here, unable to add the libraries and servers for using the USB hardware on the SDK board. The problem according to DevZon’s experts is described on the following link:
https://devzone.nordicsemi.com/f/nordic-q-a/19550/can-nrf52840-usbd-work-with-softdevice/75998#75998
“Can nrf52840 usbd work with softdevice?”
“ over 2 years ago in reply to Sigurd
Hi, the reason for this is that the NRF_POWER interrupts that is set with the usb_start()/nrf_power_int_enable() function are cleared/removed when the SoftDevice is enabled. These interrupts are used to detect when the USB-cable is plugged in and out. The application has restricted access to the NRF_POWER peripheral after the SoftDevice is enabled, so it cannot set-up the interrupts after the SoftDevice is enabled. A new SoftDevice version is soon coming that will have the functionality to set-up these interrupts after the SoftDevice is enabled. “
So we need an updated example for the “Central” role, running on SDK v15.0.0 (or v15.2.0).
It is really frustrating the usefulness of the old examples (SDK 14.2.0) inside “Bluetooth_5_and_Bluetooth_Low_Energy_-_A_Developer's_Guide”, for SDK 15.0.0.
The migration process guide supplied by Nordic is too difficult, unacceptable, and it contradicts the Nordics boast to let the programmers be concentrated on developing their own application. Actually it took us just two days to wire our hardware sensors + ADC to the SDK board and migrating our SW to the board. The rest of the time, since my first post on DevZone at 26/08/2018 was spent on fighting with Nordic SW issues.