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

Multilink central on nrf52840 usb dongle

I'm trying to get the ble_app_multilink_central example from sdk15.3 working in a nrf52 usb dongle but am having trouble with unexpected behaviour after programming the dongle.

I have 3x nrf52 usb dongles: 1 with multilink central/s140 and 2 programmed with Nordic Blinky peripheral/s140. Im using SES. First off all 3 dongles work fine with the blinky peripheral example when i test them individually using nrfConnect from my android phone, so Ive ruled out a hardware issue at the moment.

Secondly i dont have an nrf52840 dk to do proper debugging (yet) so i'm basically trying to use LED blink sequences to do crude debugging. Ive ordered one but i dont want to sit around waiting for it to turnup.

The issue is after programming one of the dongles with multilink central, i get unexpected behaviour from the LED. I believe LED 0 is supposed to be solid on to indicate it is scanning for the two nordic blinky dongles i have turned on across the desk, but instead the LED blinks and no connections are made as the blinky dongles never exit advertising mode. I've tried searching every instance in the multilink example main.c file where an LED is turned off or on, and i have added pauses or specific blink sequences to indicate when that particular piece of code is executed, but the blink pattern never changes, suggesting to me that none of the LED control in main.c is ever called. Ive also tried adding a blink sequence to the generic assert function in main.c, but that is never executed either. A debugger would be really handy about now, but my guess is ive achieved some fault condition during boot up that is related to code in the softdevice, but i havent been able to dig into that yet.

Note to program the multilink example onto the nrf52 usb dongle, I have made two modifications to the multilink project: ive swapped the board define to be pc10059 (from pc10056) in the preprocessor settings, and I have changed the linker placement macros to be identical to those used in the ble_app_blinky peripheral example from sdk15.3 that has been programmed to the other two dongles. I have not changed anything else. (I have a separate copy of this example that i have modded with LED blink sequences).

For both examples i am using from the sdk15.3, i am compiling them in SES and programming the dongles using the USB DFU on the dongles and nrf programmer app on Win10.

Im a bit rusty on my nordic nrogramming, but im sure there is something simple and obvious i am just not seeing that would get me up and running, so if anyone can point out where I have gone wrong I'd appreciate the help. Ultimately i want to have the usb dongle be a central device to 2 peripherals and allow a pc to communicate with the peripherals via a usb virtual com port, so after getting the basics done i want to work on merging the multilink and uart examples.

Thanks

Todd

Parents
  • Argh it was something simple! I went back to the unedited SDK15.3 version of the multi-link central SES project and noticed the Linker Section Placement Macros were different to the ones I was using in my edited version. I had transplanted the Section Placement Macros from the Blinky peripheral project, not realising that it would be the difference between working and not working. 

    By reverting the Section Placement Macros to their original values, everything starts working. Phase 1 complete!

Reply
  • Argh it was something simple! I went back to the unedited SDK15.3 version of the multi-link central SES project and noticed the Linker Section Placement Macros were different to the ones I was using in my edited version. I had transplanted the Section Placement Macros from the Blinky peripheral project, not realising that it would be the difference between working and not working. 

    By reverting the Section Placement Macros to their original values, everything starts working. Phase 1 complete!

Children
Related