embed-scan
CLI toolkit for scanning and identifying embedded hardware interfaces — JTAG, UART and pin-status — via Digilent (DWF) and Saleae backends.
Features
- JTAG scanner — auto-discover TCK/TMS/TDO/TDI pins, read IDCODE chains, identify connected chips from a built-in database (ARM, ST, Nordic, Xilinx, Altera, RISC-V and more)
- UART scanner — capture digital samples and infer baud rate, frame format, RX and flow-control pins
- Pin status scanner — read the current high/low level of any set of pins
- Interactive UI — unified selector menu combining all scanner modes
Installation
# Core (no hardware dependencies)
pip install embed-scan
# With Digilent DWF support
pip install "embed-scan[dwf]"
# With Saleae support
pip install "embed-scan[saleae]"
# All backends
pip install "embed-scan[all]"
Quick start
# Interactive UI (Digilent device 0)
embed-scan dwf 0 ui
# One-shot JTAG scan on pins 0-3
embed-scan dwf 0 jtag -c 0-3
# Detect connected chips on pins 0-3 (after pin assignment is known)
embed-scan dwf 0 jtag --tck-pin 0 --tms-pin 1 --tdo-pin 2 --tdi-pin 3
# UART capture on pins 2,3,5 for 2 seconds
embed-scan dwf 0 uart --pins 2,3,5 --seconds 2
# Read pin levels
embed-scan dwf 0 status --pins 0-7
Requirements
- Python ≥ 3.11
dwfpy(for Digilent Analog Discovery / Digital Discovery) — optionalsaleae(for Saleae Logic) — optional
Release
Tag a commit vX.Y.Z and push; GitHub Actions will build and publish to PyPI automatically.
git tag v1.0.0
git push origin v1.0.0
License
MIT
Release files for embed-scan 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| embed_scan-0.0.2.tar.gz | 37.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| embed_scan-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 67.6 kB
Release files / embed_scan-0.0.2.tar.gz
| Download URL | embed_scan-0.0.2.tar.gz |
|---|---|
| Size | 37.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d07747019d5a62c7c2660bdbdb9b002b536ac201aa766625eb1533a8bb8e1324
|
|
BLAKE2b-256 checksum How to use checksums |
2557d6680c98c0569f42655eeee745ce4650eadb9b0404e774ffa044188039b4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Aug 20, 2026.
Transparency logRelease files / embed_scan-0.0.2-py3-none-any.whl
| Download URL | embed_scan-0.0.2-py3-none-any.whl |
|---|---|
| Size | 29.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6382805d9cf455d40272de0d69be0a1f79ea28b66643d8a759cfb8c3accae80a
|
|
BLAKE2b-256 checksum How to use checksums |
8c8792c1bdffdc5a56b15a1ede480c939097c03a541b2842179c4bdcbc9249de
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Aug 20, 2026.
Transparency log