Skip to main content

PicoForge Python Tools

Install

With Python 3.10+ in a virtual environment:

python -m pip install picoforge
picoforge web

The PyPI package includes the local dashboard assets. The same wheel is attached to GitHub Releases. These downloads become available after the initial publishing setup and successful release. For source development, use python -m pip install --editable host/python at the repository root.

Usage

The Python host reads the PicoForge vendor-defined HID interface and can serve a local status dashboard. The dashboard and status command include SD-card presence, transport, bus speed, capacity, and CID identity when available. From the repository root, tools/host/run-python.sh creates build/picoforge, installs this package on first run, and starts the dashboard. Pass status or web to select a command. Set PYTHON to choose the base interpreter or VENV_DIR to choose the environment path.

The dashboard defaults to 127.0.0.1:5000. Use Rescan and the board selector in Device identity to switch between attached boards; --serial SERIAL or --device-path PATH can set the preferred initial selection. Override the port with tools/host/run-python.sh web --port PORT. Only one dashboard server can bind to port 5000 at a time. On Linux, if the launcher reports a permission error, run tools/host/hid-permissions-setup.sh and reconnect the Pico. The rule grants access to plugdev and the active desktop session.

The shared Python/.NET page refreshes automatically. Its Device information row follows Pico UART's field order: product, board model, serial / UID, system clock, firmware RAM reserved / total, and firmware version (Unknown for legacy firmware). The six fields share one desktop row and wrap on smaller screens. The Board LED toggle is in Device information; SD sharing is beside the self-test. The Pin configuration disclosure under Board configuration is collapsed by default; expand it to view separate Monitor UART and Storage tables, each with signal names across the first row and GPIO values across the second row, including card detect. Monitor UART appears above Storage, with both tables spanning the area. Reset cause stays visible beside the clock and SD-card settings. During benchmark I/O, the storage status sampler may be unable to acquire the driver lock. The dashboard shows Busy, not an initialization failure, and retains the last sampled card details without adding a message above the table, keeping the layout stable during I/O. Retained details are cleared on disconnect, board selection changes, stale reports, ownership transitions, or a fresh sample showing absent or uninitialized media. Selecting Start authorizes temporary self-test writes. An existing /PFTEST.BIN file or directory is rejected and never replaced.

Save and Reboot asks for confirmation and sends one HID settings command. Firmware saves the settings and queues its own reboot only on success; the host verifies the saved values in the command result without sending a separate reboot command. Reboot Board confirms a reboot using the already saved settings and warns when unsaved dashboard changes will be lost. Both use Pico UART-style modal dialogs with Cancel and explicit action buttons; Escape cancels without sending a command.

Use Share SD card to hand the SD card to the host. Firmware unmounts its filesystem before USB briefly re-enumerates with an added MSC interface, keeping the HID identity and interface stable.

Return to Pico requires data-loss confirmation, then requests Pico-side detach and remount over HID. It uses the same styled confirmation dialog as reboot, with Cancel and Escape sending no command. The same command is used on Windows, Linux and macOS; the host app never runs OS eject/unmount commands and requires no UDisks2 or eject permissions. The button requires supporting firmware; older firmware shows an update message instead of silently falling back to a different behavior. See the authoritative force-return design and risks; a successful remount does not establish filesystem integrity. This is OS-independent command behavior, not physical qualification on every OS. Native HID access still requires the platform's usual permissions and drivers.

The dashboard also controls the SD-card self-test over HID and displays progress, verified byte counts, and average MiB/s. Its POST /api/self-test accepts {"action":"start","size_mib":32} or {"action":"cancel"}. A 202 response acknowledges delivery; completion and firmware rejection come from self_test in /api/status.

Run all hardware-free host unit suites from the repository root (install this package first):

python3 -m pip install --editable host/python
tools/validation/test-host.sh

Metadata

Release files for picoforge 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for picoforge 0.0.4
File Interpreter ABI Platform
picoforge-0.0.4-py3-none-any.whl Python 3 none any Details

Release files / picoforge-0.0.4-py3-none-any.whl

Download URL picoforge-0.0.4-py3-none-any.whl
Size 39.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
df4819a05550350069874331d6e980900b7cfd2b90692c7734daffc23fc48168
BLAKE2b-256 checksum
How to use checksums
b922843fbcb87958575fd4b835ef873e64715f455587560d456f3b659fb70274
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 26, 2026.

Transparency log

Security for picoforge 0.0.4

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 picoforge-0.0.4-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 26, 2026.

Transparency log

A 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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.4 This release

1 release file Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page