MCPcopy Index your code
hub / github.com/embassy-rs/teleprobe

github.com/embassy-rs/teleprobe @teleprobe-meta-v1.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release teleprobe-meta-v1.1.0 ↗ · + Follow
101 symbols 146 edges 16 files 4 documented · 4%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Teleprobe

Run MCU binaries on remote targets.

Operation Modes

Teleprobe has three operation modes - local, server and client.

Local Mode

Local mode is intended to be run on the machine where the remote MCU is connected, usually for debugging purposes.

List available probes:

teleprobe local list-probes

Run an elf on available probe:

teleprobe local run --elf test_max31865 --chip STM32H743BITx --probe 0483:374e

Server Mode

Starts a HTTP server responsible for remotely flashing connected MCUs.

teleprobe server

The server listens on port 8080 by default, this can be changed via the --port XX option.

Configuration

Server configuration is stored in a file called config.yaml. It contains both configuration of authentication (bearer tokens or OIDC) and definition of targets.

An example configuration can be seen in the following snippet:

auths:
  - !oidc
    issuer: https://token.actions.githubusercontent.com
    rules:
      - claims:
          iss: https://token.actions.githubusercontent.com
          aud: https://github.com/embassy-rs
          repository: embassy-rs/embassy
  - !token
    token: hN6e2msKlqsW9smsjyF5I7xmiuPQij0O
targets:
  - name: nucleo-stm32f429zi
    chip: stm32f429zitx
    probe: 0483:374b:0670FF495254707867252236

Client Mode

Client mode is useful for interfacing with the server seamlessly.

Request available target MCUs:

teleprobe client --host http://SERVER_ADDRESS:8080 --token ACCESS_TOKEN list-targets

Run a binary on target MCU:

teleprobe client --host 'http://SERVER_ADDRESS:8080' --token ACCESS_TOKEN run --elf test_max31865 --target nucleo

The ACCESS_TOKEN and host can be also stored into TELEPROBE_TOKEN and TELEPROBE_HOST environment variables.

License

This work is licensed under either of

at your option.

Extension points exported contracts — how you extend this code

FutureExt (Interface)
(no doc) [1 implementers]
teleprobe/src/logutil.rs

Core symbols most depended-on inside this repo

to_string
called by 9
teleprobe/src/config.rs
run
called by 4
teleprobe/src/run.rs
with_val
called by 3
teleprobe/src/server.rs
traceback
called by 3
teleprobe/src/run.rs
check_auth_filter
called by 2
teleprobe/src/server.rs
targets
called by 2
teleprobe/src/server.rs
run
called by 2
teleprobe/src/run.rs
dump_state
called by 2
teleprobe/src/run.rs

Shape

Class 34
Function 34
Method 27
Enum 5
Interface 1

Languages

Rust100%

Modules by API surface

teleprobe/src/logutil.rs19 symbols
teleprobe/src/server.rs15 symbols
teleprobe/src/run.rs14 symbols
teleprobe/src/client.rs14 symbols
teleprobe/src/config.rs10 symbols
teleprobe/src/auth/oidc.rs8 symbols
teleprobe/src/util/ondrop.rs4 symbols
teleprobe/src/probe/specifier.rs4 symbols
teleprobe/src/probe/mod.rs4 symbols
teleprobe/src/main.rs4 symbols
teleprobe/src/api.rs2 symbols
teleprobe/build.rs2 symbols

For agents

$ claude mcp add teleprobe \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page