Universal Asynchronous Receiver/Transmitter or UART for short is a device for asynchronous serial communication. Data is transmitted one bit at a time from the least significant bit first and are separated by start and stop bits to help synchronize timings. Data transmission is typically done with 12v (RS-232, found on most IBM PC compatible computers) or 5v (RS-485). Arduinos ??

There are some common UART integrated circuits that designers have used in various systems. To distinguish one model from another, they are typically numbered by how much buffer it has and the standard it implements. Common ones include the 8250 UART (8 byte buffer, 250 'standard') and later the 16550 UART (16 byte buffer, the 550 'standard'). There are more listed on the Wikipedia page.

UART options[edit | edit source]

When setting up serial communication, both the sender and receiver should be configured with the same settings. Settings include the speed (the baud rate), how many data bits to send, whether to send a parity bit and if enabled the method in which the parity bit is calculated, and whether to include a stop bit.

Common settings are 8N1 (8 data bit, no parity, 1 stop bit).

Baud rates[edit | edit source]

The baud rate is how many symbols are transferred per second. A symbol in this context refers to a pulse or tone in transmission where one symbol represents a binary "1" while another represents a binary "0". However, some systems could potentially have symbols in more than two states. To convert baud rates into bit rates, we sum up how many bits (the 1's and 0's) are sent in total which requires knowing how many bits are represented by each symbol.

Bit rate = baud rate * bits per symbol.

For systems using one symbol per bit, the baud rate is equal to the bit rate.

Common baud rates follow the 16 x 2n formula. Most common baud rates are listed below. More detail from Wikipedia.

Baud rate
9600 Common
74880 ESP8266 boot uses this rate
115200 Common