Skip to content
Docs
WebsiteRequest a demo

Supported peripherals

Peripheral catalog

Select the external parts on your board so Flash can resolve the exact datasheets and verified knowledge available for that hardware. Project intent stays small; immutable catalog artifacts are shared and cached by content hash.

Just adding a part?
Follow Add a peripheral for the steps in Flash IDE, Flash CLI and VS Code. This page explains how the catalog and its documents work.

Select from the catalog

Open the picker with /peripherals or the PERIPHERALS panel. It searches the latest verified catalog snapshot stored by the client, so browsing continues offline after the first successful synchronization.

In Flash
/peripherals add peripheral:bosch:bme280/peripherals list/peripherals remove peripheral:bosch:bme280/peripherals update

Browse supported peripheralsfor the same release ID, category and manufacturer labels, and the independent datasheet, knowledge-pack, driver, and HIL tiers.

What happens after selection

StageResult
IntentFlash stores the stable catalog ID and requested release.
ResolutionThe current release fixes the family revision, pack version, documents, and hashes.
InstallMissing immutable objects are verified and stored once in the global content store.
PublishProject artifacts and the active-skill index are replaced atomically.
IndexAuthorized documents are indexed into the workspace RAG generation.
Note
A catalog entry is not automatically a skill. Flash only activates the pack version pinned by the resolved artifact, and only when its applicability and client-version requirements match the project.

Project artifacts and cache

The workspace source records your choice. Generated artifacts record the reproducible resolution; global objects are not copied into every workspace.

Example
$FLASH_HOME/workspaces/<workspace-id>/  sources/hardware/peripherals.json  artifacts/<generation>/hardware/peripherals.json  artifacts/<generation>/documents/catalog.json  artifacts/<generation>/skills/active.json $FLASH_HOME/packages/objects/sha256/<prefix>/<digest>$FLASH_HOME/cache/documents/sha256/<prefix>/<digest>.pdf$FLASH_HOME/cache/<workspace-id>/rag/<generation>/
  • Sources are user intent. They contain no downloaded cache.
  • Artifacts are reproducible. They pin the release, revision, version, and digest selected for the project.
  • Caches are replaceable. RAG generations can be rebuilt; object references allow safe garbage collection.

Datasheets and source policy

Each catalog document declares its distribution policy. Flash can use a hosted immutable document, fetch from an authorized origin, expose metadata only, or report that no document is available. Provider API credentials belong to the server-side authoring pipeline, never to the project runtime.

PolicyClient behavior
flash_hostedDownload, hash-verify, cache, extract, and index the published object.
origin_onlyFetch from the approved origin when allowed; do not treat it as redistributable.
metadata_onlyShow identity and provenance without downloading a document.
noneContinue without inventing datasheet context.

Custom peripherals

If the part is absent, create a workspace-scoped custom peripheral and attach documentation you are authorized to use. Custom documents stay under the workspace source tree and are never promoted to the public catalog automatically.

In Flash
/peripherals add-custom "My Sensor" --document ./docs/my-sensor.pdf
Custom context is not official support
Adding a PDF gives the project private retrieval context. It does not create an official catalog entry, a signed knowledge pack, a reference driver, or HIL evidence.

Once authorized documents are resolved and indexed, semantic and keyword retrieval returns cited passages. Exact MPNs, register names, and pins remain searchable through the local hybrid index.

In Flash
/peripherals search ADC reference voltage/peripherals search BME280 forced mode timing

Update intentionally

Existing projects remain reproducible when a new catalog is published. Run /peripherals update to preview changes and accept a new resolved generation; a background catalog sync alone does not silently change the project.

What's next