Universal asynchronous receiver-transmitter (UART) is a hardware device that transmits and receives data asynchronously. Two UARTs communicate directly by using two wires: one for transmission (TX) and one for receiving (RX). Data flows from the TX pin from the sender UART to the RX pin from the receiver UART. Lastly, both UARTs must be configured to receive and transmit data. You can read more about UART here.


Asynchronous communication means that there is no clock signal to synchronize the output bits from the transmitter to the sampling bits by the receiver. Instead, there is data's start and stop bits that identify the message's beginning and end.

Vitro Crystal

The OS for Vitro Crystal is the Yocto-based OS. For more information regarding it, please check the Operating System documentation. It is possible to receive and send data from your host computer to Vitro Crystal with UART on the J14 header. There are three pins on the header: ground (GND), transmitter (TX), and receiver (RX). As mentioned before, if you want to send a message, the UART on the host computer will send it through pin TX, and Vitro Crystal's UART will receive it on pin RX. Taking that into consideration, the correct wiring is as follows:

Vitro CrystalUART converter

The J14 header and the pins are shown in the picture below:


Vitro Crystal UART header.

Both Vitro Crystal OSs have the UART configured. Thus, you need to configure yours the same way. You will need a serial-port application to open the serial connection between your host computer and Vitro Crystal. If you followed the Requirements documents, everything is installed properly. Otherwise, please check it. Also, to configure the serial-port application, the parameters are:

  • Baudrate: 115200.
  • Data bits: 8.
  • Parity: none.
  • Stop bits: 1.

The same configuration can be described in shortage: 115200 8N1. Finally, you also need to identify the name of the port. Usually, a USB-UART converter has the following pattern: /dev/ttyUSBx, where x is a consecutive number. Therefore, it is probably 0. One way to find out is to run the following command:

dmesg | grep tty

You will see something like this:

[    0.000000] console [tty0] enabled
[    5.065029] usb 4-3: pl2303 converter now attached to ttyUSB0

In this case, the number is 0. Thus, the port is /dev/ttyUSB0. With these parameters, now you can configure your serial-port application. If you are a Linux user and have minicom installed, just run this command:

minicom -b 115200 -D <port name>

For more information regarding minicom, please check here.

Vitro Shard

Vitro Shard also has UART: on header J43 and a micro USB port (J54). The primary purpose is to debug the application by printing errors, warnings, and logs. However, as you can develop using our API or from scratch, the UART can be configured whatever you like on Vitro Shard. As such, we will leave the configuration up to the developer. As a start, you can check the UART on the Mbed OS documentation and our demonstration application.

Whatโ€™s Next