Raspberry Pi Pico UART-USB bridge
  • C 91.8%
  • CMake 4.6%
  • Shell 3.6%
Find a file
Álvaro Fernández Rojas f53de40836
Some checks failed
pico-uart-bridge / Build Raspberry Pi Pico (push) Has been cancelled
pico-uart-bridge / Build Raspberry Pi Pico 2 (push) Has been cancelled
github: ci: switch to ubuntu-latest
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2026-01-25 16:22:41 +01:00
.github/workflows github: ci: switch to ubuntu-latest 2026-01-25 16:22:41 +01:00
pico-sdk@a1438dff1d build: add Raspberry Pi Pico 2 support 2026-01-25 16:16:10 +01:00
.gitignore Import project files 2021-02-03 13:21:20 +01:00
.gitmodules github: add CI 2021-02-06 11:37:55 +01:00
build.sh build: add Raspberry Pi Pico 2 support 2026-01-25 16:16:10 +01:00
CMakeLists.txt build: add Raspberry Pi Pico 2 support 2026-01-25 16:16:10 +01:00
LICENSE.md Import project files 2021-02-03 13:21:20 +01:00
README.md build: add Raspberry Pi Pico 2 support 2026-01-25 16:16:10 +01:00
tusb_config.h Increase buffers and improve USB descriptors 2022-11-04 10:59:54 +01:00
uart-bridge.c uart-bridge: restore clock speed 2024-04-10 20:04:20 +02:00
usb-descriptors.c Increase buffers and improve USB descriptors 2022-11-04 10:59:54 +01:00

Raspberry Pi Pico USB-UART Bridge

This program bridges the Raspberry Pi Pico HW UARTs to two independent USB CDC serial devices in order to behave like any other USB-to-UART Bridge controllers.

Disclaimer

This software is provided without warranty, according to the MIT License, and should therefore not be used where it may endanger life, financial stakes, or cause discomfort and inconvenience to others.

Raspberry Pi Pico Pinout

Raspberry Pi Pico GPIO Function
GPIO16 (Pin 21) UART0 TX
GPIO17 (Pin 22) UART0 RX
GPIO4 (Pin 6) UART1 TX
GPIO5 (Pin 7) UART1 RX

Build for Raspberry Pi Pico / Pico 2

Prerequisites:

  • CMake
  • ARM GCC toolchain (e.g. arm-none-eabi-gcc)
  • Python 3

Build steps:

  1. Initialize submodules if you haven't already:
    • git submodule update --init --recursive
  2. Run the build script (defaults to Pico 1):
    • ./build.sh

The .uf2 output will be created at build/uart_bridge.uf2.

Board override:

  • To build for Pico 2, set PICO_BOARD:
    • PICO_BOARD=pico2 ./build.sh