# NUS (Nordic UART Service)

**Introduction**

Nordic Uart Service emulates Universal Asynchronous Receiver Transmitter over Bluetooth. NUS has 2 characteristics, RX and TX. Central registers to TX notifications and once notification registration is acknowledged central can start writing to RX characteristic. Each characteristic accepts up to 20 byte payloads, interpretation of those payloads depends on application.

**Watchdog on RuuviTag** In development versions of RuuviTag firmware there is 120 second delay from starting of the connection in which the central must complete the registration process. If the deadline is not met, tag assumes that there is a software lockup and reboots. In production versions this deadline is 12 seconds.

**Technical details**

The Ruuvi Firmware standard messages have a structure of 3 byte header and 8 byte payload. The header has a structure of destination, source and type. Last bit of the type is R / !W bit, if the last bit is set (odd number) the message is understood as a read command. The payload is defined by the header.

| **Service**         | UUID                                 |
| ------------------- | ------------------------------------ |
| Nordic UART Service | 6E400001-B5A3-F393-E0A9-E50E24DCCA9E |

| Characteristic | UUID                                 | Read | Write | Notify |
| -------------- | ------------------------------------ | ---- | ----- | ------ |
| RX             | 6E400002-B5A3-F393-E0A9-E50E24DCCA9E |      | X     |        |
| TX             | 6E400003-B5A3-F393-E0A9-E50E24DCCA9E | X    |       | X      |

**Getting started** We have published [ruuvi.air.ble\_nus](https://github.com/ruuvi/ruuvi.air.ble_nus) tool for developing GATT communication with RuuviTags and Ruuvi Air. This can be used for quickly trying out the 2-way communication before developing your own applcations.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ruuvi.com/communication/bluetooth-connection/nordic-uart-service-nus.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
