The following modes in each table are mutually exclusive on the Raspberry Pi 3.
The Raspberry Pi has a single full-speed UART (UART0) and a mini UART (MINIUART); see the official docs for information on their differences. These UARTs are multiplexed between various board functions and cannot be used simultaneously. The following modes are supported:
|Mode||Activated By||Bluetooth||Pin Functions|
|Debug console||Default mode; no PIO connections||Enabled||Pins BCM14/BCM15 expose RX/TX of the serial debug console|
|UART0||UART0 opened by PIO||Disabled||Pins BCM14/BCM15 expose RX/TX of UART0|
|MINIUART||MINIUART opened by PIO||Enabled||Pins BCM14/BCM15 expose RX/TX of MINIUART|
|BCM14 or BCM15||Pin opened by PIO||Enabled||Named pin (BCM14 or BCM15) is GPIO, other pin is idle|
IOException error is thrown if you try to open an active pin (from above)
using a different UART mode.
The Raspberry Pi uses a shared clock signal for the PWM drivers and the audio subsystem (I2S and analog). Analog audio is transmitted through the 3.5mm audio jack. The following modes are supported:
|Mode||Activated By||Analog Audio||Pin Functions|
|Audio||Default mode; no PIO connections||Enabled||N/A|
|PWM0||PWM0 opened by PIO||Disabled||Pin BCM18 enabled as PWM|
|I2S1||I2S1 opened by PIO||Enabled||Pin BCM18 enabled as I2S BCLK|
|BCM18||Pin opened by PIO||Enabled||Named pin (BCM18) is GPIO|