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

No valid bidirectional (UART) communication between the iMX6 UL-S evk board running the Nordic PC BLE driver and the nRF52 DK running the Nordic connectivity 132 uart software

Hallo,

Currently I'm investigating different Low Energy Bluetooth solutions for our healtcare products that we build in Televic Healthcare.

So  here is the setup I have build to verify how fast and easy we can integrate the Nordic products into our healthcare products:

As we want still  to have our own board running the application software the Exceet IMX6 UL-S 2 evk board is used (see : https://docs.exceet-electronics.de/board-imxceet-ul-2-s/) in combination with the Nordic nRF52 DK board.

Both boards are linked together via a UART connection for bidirectional communication. 

As proposed by Nordic to handle this kind of use case I have been investigating the serialize concept as described in the Nordic v15 SDK documentation.

So the Exceet board will operate as application board and the Nordic nRF52 DK board shall operate as connectivity board 

However for fast proof of concept and evaluation I found the wonderful and powerful BLE driver SW provided by Nordic distributed via GIT.

So I managed to build (cross compiling for Cortex 7A processor) and run the BLE driver SW on the Exceet IMX6 board.

As mentioned both boards are connected via a UART link. 

On the Nordic board that operates as connectivity board I flashed the connectivity_2.0.1_115k2_with_s132_5.0.hex (downloaded from GIT)

Unfortunately the BLE driver application on the application board exits after trying to send 6 times the LINK CTRL packet or better the SYNC message : 01 7e

The UART message as it was trapped by a logical analyzer. 

Debug output:

Any ideas how to proceed further, what  further debug information can be interesting for Nordic?

I also tried to use the HR connectivity SW as provided by the latest Nordic SDK v15 for debugging via the SEGGER IDE debugger.

In that case I flashed the latest SoftDevice SW and flased the HR connectivity applic SW after it was build in the SEGGER IDE. 

BTW I have also posted some comments on the github site for the BLE driver project:

https://github.com/NordicSemiconductor/pc-ble-driver/issues/143

Thanks in advance,

Best regards,

Frank Vieren

  • Any ideas how to proceed further

    So you've demonstrated that the Exceet is actually sending something.

    The obvious next step is to check if the Nordic is receiving it.

    Then, if it is receiving, is it sending any reply?

  • Hi

    As far as I correctly can analyze the reply channel coming from the Nordic board I don't see an answer sent. 

    Can you confirm that the message sent to the Nordic board is valid? As far as I can see in the code provided in the SDK v15 for the BLE HR connectivity application there is no stripping of the "slip" encoding that is set on any packet (RESET, LINK_CONTROL,...) when sent from the PC BLE driver application.

    Also in the documentation of the PC BLE driver there is no reference for using using the SDK application code for the connectivity board. According to the documentation the hex file as provided by the GIT project must be flashed into the connectivity board.

    However when I run and debug the SDK HR connectivity HR  applic in the SEGGER debugger I trap always a phy error. So no reply is send back.

    Honestly I must say the BLE driver code looks awesome to use. 

    My next tryout is running the BLE driver code on a standard PC with Ubuntu  as OS system, this should normally work... otherwise something is wrong with the Nordic board or at least with the SW running on it. 

    Thanks for the support.

    Best regards,

    Frank

  • Update:

    -----------

    I replaced the Nordic board with another one we had, connected it to a PC running Ubuntu and the PC BLE driver applic worked perfectly. Advertising was done and I could  connect it to a smartphone running the Nordic HR application and see the simulated HR data.

    My next step was connecting this working Nordic board back to the Exceet board but still without succes. 

    However when I connect it back to the PC the PC BLE application no longer works and throws the same errors as when using the Exceet board for running the PC BLE application.

    So the UART connection made between both boards destroyed something on the Nordic board.

    As far as  I can see the connection was made correctly, meaning RX (Nordic, PO.28) connected to TX (Exceet) and CTS(Nordic, PO.25) to RTS(Exceet) and vice versa. 

    How to find out easily what is damaged on the Nordic board? UART checking?

    Best regards,

    Frank

  • Update:

    ----------

    On the Nordic board I no longer measure any voltage between RX and ground or TX and ground. So it seems the UART is blown, so this also means the emulated UART via USB micro is no longer usable?

    On the Exceet board voltages between 3.1 and 3.3 are  still measured.

    No idea how the UART on the Nordic can be destroyed when voltage levels are for both boards between 3.1. and 3.3. 

    Best regards,

    Frank

  • Update:

    ----------

    It seems the GPIO pins P 23/24/25 an 02 are not by default enabled to be used as UART when running the connectivity applic from the github project PC BLE driver, correct?

    Correctly to say that when running the connectivity HR applic from the SDK these pins become active when doing the serialization setup between 2 Nordic DK's with one acting as connectivity board and the other one as application board. Because this was the first test I did before using the Exceet board as application board.

    What to make this work, as the sources from the Git hub project for the connectivity applic are not available?

    Thanks,

    Best regards,

    Frank

Related