Hello,
I am working on a project that modified from ble_app_uart_c, with sdk v16.0, softdevice S140. The 52840 board as ble central and an android app as virtual NUS peripheral.
It should be straightforward work, but the board can only connect the service, discover the chars normally, can not tx/rx data with the android app.
After 3 days debugging, I found a strange thing. When I use NRF Connect app to debug, after connected to the ANDROID VIRTUAL PERIPHERAL, many duplicate services with same UUID discovered. Different device with same android app got distinct result. My Samsung Galaxy got 6 duplicate services, but Google Nexus got 3 duplicate services, another MI branded phone got five. See the screenshot.
android app running on Samsung galaxy as peripheral, NRF Connect iOS version screenshot

And only operations on the bottom one service take effect, other service can neither write data nor receive notifications.
I think it may be a bug of my android app, so running NRF Connect APP on the Samsung phone, create a virtual peripheral using ADVERTISER function, then use another NRF Connect running in iOS, scan and connect, 4 duplicate services discovered. Maybe it's a bug of ANDROID BLE framework ?!
Based on above situation and back to my question, how can I connect to the specified service(the bottom one) from the 52840 board?