Pulse width modulation
The pulse width modulation (PWM) module is essentially used to generate a square wave signal at a fixed frequency, and then vary its duty cycle. It gives us the ability to accurately generate pulses of a configured duration, repeating at a configured frequency. Like the GPIO module, the PWM module on the BeagleBone Black operates at 3.3V. These PWM signals can be used to control servo motors, vary the speed of DC motors and the brightness of LEDs, and with some additional external components they can be used to generate varying voltages.
Universal asynchronous receiver/transmitter
The universal asynchronous receiver/transmitter (UART) modules are used to transmit and receive RS-232 style serial signals, which is an industry standard for serializing and transferring information between two devices using a pair of unidirectional digital signals. They can be used to communicate with PCs, Bluetooth and Wi-Fi radio modules, and GPS receivers. The BeagleBone Black's UART modules also operate at 3.3V.
Serial peripheral interface
The serial peripheral interface (SPI) module is used to communicate over SPI, which is another industry standard serial protocol. Whereas UARTs are generally used to connect two devices, SPI is made to connect one master device to one or many slave devices. It is commonly used on devices such as small character and graphics LCD screens, external ADCs, and DACs (Digital-to-Analog converters), as well as on many different types of sensor. The BeagleBone Black's SPI modules operate at 3.3V as well.
Inter-Integrated Circuit
Inter-Integrated Circuit (I2C) is yet another industry standard serial protocol. It also allows a master device to communicate with a bus of many slave devices, but it requires fewer pins than SPI. It is commonly used by real-time clocks (RTCs), as well as in many types of sensors, including Micro-Electro-Mechanical Systems (MEMS) devices, such as accelerometers, magnetometers, and gyroscopes. The BeagleBone's I2C modules operate at 3.3V.