This release is a pre-release and may not be stable for production use.
PicoUart
PicoUart provides a Python client and command-line tool for monitoring and controlling the HID diagnostics interface on the PicoUart six-channel USB-to- UART bridge. UART data and line settings remain on the six USB CDC interfaces.
Requirements
- Python 3.10 or newer
- A PicoUart-compatible RP2040 or RP2350 board
- Host access to its HID interface; Linux users can use the permission helpers
Install
For a tagged release, download its Python wheel from GitHub Releases and install it with
pipx install /path/to/pico_uart-VERSION-py3-none-any.whl, replacing the path with the downloaded file. The bundled
dashboard displays that release version automatically. See the distribution status
for PyPI activation and other downloads. After the first successful PyPI publication, prefer an isolated application
install with pipx install pico-uart. Alternatively, install inside a virtual environment:
python -m pip install pico-uart
CLI
From a source checkout on Linux/macOS/WSL, tools/host/run-python.sh prepares its Python environment and starts the
dashboard. Pass commands such as tools/host/run-python.sh status to use the CLI instead. See
Repository Tools for launcher options.
Read a status sample, watch live health reports, or launch the local dashboard:
pico-uart status
pico-uart status --json
pico-uart monitor --duration 10
pico-uart overruns
pico-uart hardware
pico-uart config
pico-uart web
The dashboard listens on http://127.0.0.1:5000 and is bound to loopback. It shows all six channels' health and
traffic, RX overflow counts, MCU model, system clock, firmware version, and board temperature. It also offers an LED
toggle and shows Reset only when the firmware advertises reset support. Use pico-uart web --port N to select another
local port.
Its frontend is shared with the .NET host. The Python package includes the frontend; .NET is not required to use it. Use Board and Rescan to choose among attached boards independently in each page. See board selection and shared monitoring for multi-user behavior and how CLI selectors set the initial selection.
Other commands include temperature, version, toggle-led, and reset. For a specific board, use the global
--serial SERIAL or --device-path PATH selector before the command, for example pico-uart --serial ABC123 status.
Python API
from pico_uart import PicoUartHid
with PicoUartHid() as board:
status = board.read_status(timeout_ms=1000)
if status is not None:
print(status["channels"])
read_status() returns None when no report arrives before its timeout. read_board_status() and
read_overflow_counts() return decoded metadata. The API's toggle_led() and reset_board() methods perform the same
HID board controls as the CLI.
read_hardware_info() returns mcu, the raw mcu_id, and system_clock_hz; pico-uart hardware prints these fields
as JSON. This requires firmware supporting HID report 6. See the
HID Report Reference for report compatibility and unknown MCU behavior.
read_configuration() and pico-uart config read the persistent configuration source, fallback reason, and selected
clock profiles from HID report 16. This is diagnostic-only: it does not expose credentials or raw flash contents.
save_configuration(profile, unsafe_overclock=False) persists a board-compatible profile through HID report 17
and returns its verified save result before firmware automatically reboots; read_configuration_save() reads that
result separately. The dashboard warns that saving briefly disconnects USB; see
Persistent configuration for precautions and defaults.
Important Notes
- Remote reset is disabled by default in firmware. The CLI and API refuse to reset unless firmware advertises that capability.
- The HID interface is for diagnostics and narrow board controls. It does not carry UART data or configure UART line coding.
- The published USB identity is for lab/project use, not commercial derivatives; see the security policy.
- Linux users may need to grant access to the HID device node before running the tool.
Documentation
Metadata
Release files for pico-uart 0.0.0.dev39596311668
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pico_uart-0.0.0.dev39596311668-py3-none-any.whl | Python 3 | none | any | Details |
Release files / pico_uart-0.0.0.dev39596311668-py3-none-any.whl
| Download URL | pico_uart-0.0.0.dev39596311668-py3-none-any.whl |
|---|---|
| Size | 31.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
25eb1c6c48c0656df05a674ad31c4e9feea956a43907a45b3deb35bafbf32471
|
|
BLAKE2b-256 checksum How to use checksums |
117b0e52295d057ec43ab158c61b96ef453b621a083de66e0686886852dea135
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logSecurity for pico-uart 0.0.0.dev39596311668
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 1 file in this release has been uploaded with provenance metadata.
Attestation for pico_uart-0.0.0.dev39596311668-py3-none-any.whl
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.