User Manual

Table Of Contents
120
23.4 UARTs and Device Tree
Various UART Device Tree Overlay definitions can be found in the kernel github tree. The two most
useful overlays are disable-bt and miniuart-bt .
disable-bt disables the Bluetooth device and restores UART0/ttyAMA0 to GPIOs 14 and 15. It is also
necessary to disable the system service that initialises the modem so it doesn't use the UART: sudo systemctl
disable hciuart .
miniuart-bt switches the Raspberry Pi 3 and Raspberry Pi Zero W Bluetooth function to use the mini
UART (ttyS0), and restores UART0/ttyAMA0 to GPIOs 14 and 15. Note that this may reduce the maximum
usable baudrate (see mini UART limitations below). It is also necessary to edit
/lib/systemd/system/hciuart.service and replace ttyAMA0 with ttyS0, unless you have a system with udev rules
that create /dev/serial0 and /dev/serial1. In this case, use /dev/serial1 instead because it will always be correct.
If cmdline.txt uses the alias serial0 to refer to the user-accessible port, the firmware will replace it with the
appropriate port whether or not this overlay is used.
There are other UART-specific overlays in the folder. Refer to /boot/overlays/README for details on
Device Tree Overlays, or run dtoverlay -h overlay-name for descriptions and usage information.
For full instructions on how to use Device Tree Overlays see this page. In brief, add a line to the
config.txt file to enable Device Tree Overlays. Note that the -overlay.dts part of the filename is removed.
...
dtoverlay=disable-bt
...
23.5 Relevant Differences Between PL011 and Mini UART
23.3 UART Output on GPIO Pins
By default, the UART transmit and receive pins are on GPIO 14 and GPIO 15 respectively, which are
pins 8 and 10 on the GPIO header.