Raspberry Pi BCM2837B0: Clarification on Bluetooth UART Pins and Rerouting for GPS Module Connection

I’m trying to reroute the RX and TX pins used for Bluetooth on my Raspberry Pi BCM2837B0. There’s confusion online about whether to use ttyS0 or ttyAMA0 for the UART interface; for this model, ttyS0 is correct? Bluetooth typically uses GPIO 14 for TX and GPIO 15 for RX. My goal is to write a device tree overlay (DTS) to reroute these UART pins to other GPIOs beyond pin 26, which I intend to use for connecting a GPS module requiring RX and TX. If anyone can clarify which uart is designated for Bluetooth on this model, I’d greatly appreciate it.
Has anyone successfuly rerouted these in the past?

Hello NicacioY,

It’s something that confused me a bit before, prior to reading this https://forums.raspberrypi.com/viewtopic.php?t=217967 that explains that there are two UART interfaces on a Raspberry Pi: a “mini” UART, and a “full” UART.

  • On the Raspberry Pi models with BCM2837B0, the mini UART is usually designated as ttyS0.
  • The full UART, also known as the PL011 UART, is designated as ttyAMA0.

As far as I understand, by default, Bluetooth typically uses the mini UART (ttyS0) on the Raspberry Pi 3 models, which includes the one you mentioned (BCM2837B0). The full UART (ttyAMA0), instead, is usually free and can be used for other purposes like connecting a GPS module.

I don’t know if anyone on the community has attempted to do this except for this topic that may be relevant: Connecting GPS PPS output directly to GPIO thru Shake board - #3 by jason.wood

And, if you need a reminder on how we use the Pi GPIO pins, you can find it here: Technical Specifications

1 Like