When it comes to communicating with a microcontroller, the word “serial” just pops up into mind if you’re familiar with microcontrollers. Three major communication protocols/interfaces used by microcontrollers are UART, SPI and I2C (TWI). Universal Asynchronous Receiver Transmitter (UART) as its name says, is an asynchronous serial communication protocol and almost all uC has it built-in. This is what this article is based on. So we’ll explore it in detail just after commenting on others. SPI stands for Serial Peripheral Interface and employs master-slave concept. Data is still send serially but multiple devices can communicate with a master using Slave Select (SS) pins, and it is synchronous, means it has a common clock signal SCK. I2C (read as “I squared C” or “I two C”) is a two wire communication protocol, and thus some manufactures call it Two Wire Interface (TWI) except some minor difference. Using I2C, multiple slaves can communicate with one or more masters. This requires only two wires, SDA (Serial Data) and SCL (Serial Clock) and of course it’s synchronous. SparkFun has great tutorials on UART, SPI and I2C. Please check that out first because here I’ll be assuming you have basic knowledge of all these.