> For the complete documentation index, see [llms.txt](https://principiot.gitbook.io/principiot-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://principiot.gitbook.io/principiot-docs/h7-pi/uart-peripheral-mapping.md).

# UART Peripheral Mapping

| UART Assignment     | Peripheral                                                        | PX4 Mapping | Ardupilot Mapping |
| ------------------- | ----------------------------------------------------------------- | ----------- | ----------------- |
| UART 1 (rev 2 only) | Available on the expansion pads on the bottom side of the board\* |             |                   |
| UART 3              | Raspberry Pi UART bridge                                          |             |                   |
| UART 4              | GPS port                                                          |             |                   |
| UART 6              | VTX (Video Transmitter) connector                                 |             |                   |
| UART 7              | ESC telemetry (Receive only)                                      |             |                   |
| UART 8              | RX (Receiver) connector                                           |             |                   |

**\*Note:** Use caution when connecting hardware to UART 1 as it may interfere with DFU firmware updating, known as [DFU Hijacking](https://betaflight.com/docs/wiki/guides/current/DFU-Hijacking). This will be fixed in the next hardware revision and mapped to UART 2.

## Raspberry Pi UART Connection

UART 3 is connected to the UART pins on the Raspberry Pi's GPIO header and the UART JST connector. The mapping of these pins is controlled by two solder jumpers on the bottom of the board.

<figure><img src="https://3721126180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1d6HD6HC2lbv2VoPI9qT%2Fuploads%2FiJFi29zpoBtG1Ii44Okz%2Fimage.png?alt=media&amp;token=0670c94d-71a4-4914-9168-6d905cef7b1a" alt=""><figcaption></figcaption></figure>

By default, UART 3 will be connected directly to the Raspberry Pi's UART. This enables direct communication between the Flight Controller and the Raspberry Pi, such as for telemetry streaming.

Cutting the solder jumpers enables custom routing of the UART.

<figure><img src="https://3721126180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1d6HD6HC2lbv2VoPI9qT%2Fuploads%2FQmtxGSLz9mjHUfyYnnzJ%2Fimage.png?alt=media&amp;token=db0b9260-d45c-4ca0-9cbe-cfc77605f260" alt=""><figcaption></figcaption></figure>

Based on the image above (PI: Raspberry Pi, JST: UART connector, FC: Flight Controller):

| Left side jumper                                                                                          | Right side jumper                                                                               |   |
| --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | - |
| Default: both jumpers connected. FC's TX connects to Pi's RX and UART connector's TX                      | Default: both jumpers connected. FC's RX connects to Pi's TX and UART connector's RX            |   |
| <p>Upper side cut:<br>FC's TX only connected to UART connector's TX. Pi's RX pin is unconnected.</p>      | Upper side cut: FC's RX only connected to UART connector's RX. Pi's TX pin is unconnected.      |   |
| <p>Bottom side cut:<br>Pi's RX pin is only connected to UART connector's TX. FC's TX is disconnected.</p> | Bottom side cut: Pi's TX pin is only connected to UART connector's RX. FC's RX is disconnected. |   |
