This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Contradictory Nordic UART Service TX/RX characteristics UUID

Hello, I find in your source code contradictory values for the UART TX and RX characteristics.

E.g. have a look at nRF toolbox (both Android and IOS) definitions: github.com/.../Constants.h

static NSString * const uartTXCharacteristicUUIDString = @"6E400003-B5A3-F393-E0A9-E50E24DCCA9E";
static NSString * const uartRXCharacteristicUUIDString = @"6E400002-B5A3-F393-E0A9-E50E24DCCA9E";

While in the nRF52 docs: infocenter.nordicsemi.com/index.jsp

TX Characteristic (UUID: 6E400002-B5A3-F393-E0A9-E50E24DCCA9E)
If the peer has enabled notifications for the TX Characteristic, the application can send data to the peer as notifications. The application will transmit all data received over UART as notifications.
RX Characteristic (UUID: 6E400003-B5A3-F393-E0A9-E50E24DCCA9E)
The peer can send data to the device by writing to the RX Characteristic of the service. ATT Write Request or ATT Write Command can be used. The received data is sent on the UART interface.

At first I thought it was just matter of having TX on the central becoming RX on the peripheral....but:

  1. Configuration for TX and RX is different (one is notify, the other is write w/o resp), so you cannot reverse them. The mobile apps specifically enables notifications on the 6E400003-... UID.
  2. If it was the case (TX becomes RX on the other side), having different names for the same UUID sucks.

Can you please explain this?

Related