Skip to main content

pt1

pt1 is a compact USB multitool for hardware bring-up, debugging and field work. It combines a USB 2.0 hub, a USB-to-UART adapter and a software-controlled USB power switch on a board measuring approximately 46 × 18 mm.

Top view of the pt1 board showing its USB-C, USB-A and header connections

Connect pt1 to a computer over USB-C to add two USB sockets, a header-accessible USB port and a serial connection. The header also provides switched 5 V power, so a connected target can be powered, monitored and power-cycled from the same tool.

Features​

  • Four-port USB 2.0 hub, with one port used internally by the serial adapter
  • USB-C upstream connection
  • USB-C and USB-A downstream connections
  • USB 2.0, UART and switched 5 V exposed on a 0.1-inch header
  • Software-controlled USB power with current limiting and fault reporting
  • TVS protection on the USB data lines
  • LED indicator for switched USB power
  • Three 2 mm mounting holes

Connections​

The upstream USB-C port connects pt1 to the host. Its downstream ports are arranged as follows:

Host USB-C
|
`-- USB 2.0 hub
|-- USB-C port
|-- USB-A port
|-- USB and UART header
`-- Internal USB-to-UART adapter

Bottom view of pt1 showing the port labels and six-pin header pinout

The six-pin header carries the third USB port, the UART and the switched power rail:

PinLabelFunction
1VUSB_SWSwitched 5 V output
2RXISerial receive; connect to the target's TX
3TXOSerial transmit; connect to the target's RX
4USB_NUSB D−
5USB_PUSB D+
6GNDGround

Power control and over-current detection​

The USB-A port and header power pin are supplied through a protected load switch. The USB-C downstream port can be set to use either the switched rail or the unswitched USB supply using its solder jumper.

Recommended companion: Vicuña

Vicuña has a dedicated pt1 mode that brings the board's power controls directly into the serial-terminal interface. It presents the DTR-controlled output as a clear power toggle and the RI fault signal as an integrated over-current indicator, so you can power-cycle a target, watch for faults and use its serial console from one place. This is the easiest way to use pt1's power-control features; the low-level details below are provided for custom integrations.

pt1 repurposes two familiar RS-232 modem-control signals from its USB-to-UART adapter, so power can be controlled and monitored through the serial port without a microcontroller or custom command protocol. These are logic-level control signals inside pt1; the board does not expose RS-232 voltage levels.

  • DTR (Data Terminal Ready) controls power. The adapter's DTR output is active-low, so deasserting DTR makes the hardware output high and enables the load switch. In most serial libraries, including pyserial, set DTR to False for power on and True for power off.
  • RI (Ring Indicator) reports faults. The load switch pulls its active-low fault output low during an over-current or over-temperature condition. This is connected to the adapter's active-low RI input, so serial APIs normally report RI as asserted when a fault is present.

A short power-on delay keeps the switched output disabled while the board starts up. Some operating systems and terminal programs assert DTR automatically when opening a serial port, so control software should always set DTR explicitly.

The green PWR LED indicates that the switched 5 V rail is present. Although the load switch provides current limiting, the available current also depends on the host, power source and USB cable.

Minimal Python example​

Install pyserial and replace COM12 with pt1's serial port. This example turns on the switched rail, watches RI and immediately turns power off if the load switch reports a fault:

import time
import serial

with serial.Serial("COM12") as pt1:
pt1.dtr = True # power off while pt1 starts
time.sleep(6)

try:
pt1.dtr = False # power on
print("Power on; monitoring for over-current")

while not pt1.ri:
time.sleep(0.05)

print("Over-current detected; turning power off")
finally:
pt1.dtr = True # always leave power off

The example assumes the serial driver reports RI using the usual modem-signal polarity. Verify RI behaviour on the target operating system before relying on it as the only fault response.

Typical use​

  1. Connect pt1 to the host through the upstream USB-C port.
  2. Wait for the USB hub and serial port to appear.
  3. Connect the target's UART to TXO, RXI and GND on the header.
  4. Connect a USB device to either downstream socket or the header USB pair.
  5. Open the pt1 serial port in Vicuña and select its pt1 mode.
  6. Use the integrated power toggle to enable the switched output, and watch the over-current status while working with the target's serial console.
  7. Turn the target power off from the same control when finished.

3D-printed case​

A two-piece 3D-printed case has also been designed for pt1. It neatly encloses the board while leaving the USB connectors, header and PWR LED accessible, giving the finished tool a tidy, compact appearance.

pt1 seated in the lower half of its 3D-printed case beside the removable lid

Assembled pt1 in its 3D-printed case with a USB-C cable connected

Design files​

Design files and manufacturing packs are available in the pt1 GitHub repository.

Notes​

  • All ports carry USB 2.0 data only; the USB-C connectors do not provide SuperSpeed lanes.
  • The UART remains available independently of the switched-power control.
  • pt1 is a protected USB power switch and debug tool, not a calibrated USB power meter.
  • Do not bridge both sides of the USB-C port's power-selection solder jumper at the same time.

Main components​

  • SL2.1A four-port USB 2.0 hub controller
  • CH343P USB-to-UART bridge
  • RT9742CGJ5 current-limited USB load switch

Acknowledgements​

Thanks to:

  • Tolga for designing the really nice case for pt1
  • Mex for the photos
  • Christian for beta testing both pt1 and Vicuña
  • The OSHCamp 2026 crew for the launch support