PERCH.tuning bench · ftc 19426
the tuning bench beneath Pedro Pathing & Marrow

One tuning pass.
Every pathing layer.

PERCH is the layer under your pathing library. It identifies feedforward (Ks·Kv·Ka) and PID gains once, live at the bench — with real telemetry you can record and replay — then emits ready-to-run constants for Pedro Pathing, Marrow, Road Runner, FTCLib, or raw SDK. Tune the physics once; every follower runs on the same numbers.

Windows desktop app · zero-build web dashboard · robot-side server for FTC + FRC · MIT licensed
The pipeline
01 · robot

PerchTuner server

A WebSocket server on the Control Hub streams every motor, servo and IMU at up to 50 Hz — no extra build step, reachable from any device on the robot Wi-Fi.

FTC + FRC
02 · dashboard

Live tuning · record & replay

Watch the response land, compute gains from the actual response, and record the whole session to a .jsonl — replay it later, share it, review it after the match.

offline · single file
03 · outputs

Constants for every layer

The same tuned gains drop into Pedro Pathing follower constants, Marrow behaviors, Road Runner, FTCLib and raw FTC SDK — nothing re-tuned between libraries.

copy · paste · run
Library outputs

Pedro Pathing — follower constants

The library PERCH was built for. Your tuned gains become the follower's velocity/acceleration constants, tuned in the same units you measured them.

Marrow — Skeleton Army behaviors

Marrow is a behaviors layer, not a PID library — PERCH hands it the tuned follower and a template that layers TimerEx and zones on top.

Road Runner — 1.x

Constants for the follow-the-gains pathing layer, in the same ticks/s units.

FTCLib — PIDFController

Gains mapped to the FTCLib controller, tuned in the same ticks/s units.

FTC SDK — PIDFCoefficients

Drop-in RunToPosition or velocity PIDF coefficients in raw encoder ticks.

PerchTuner — telemetry hook

The server snippet itself, so any OpMode can stream to the bench.

See it work

Live tuning

PERCH Live tab — simulated arm step converging with auto-tuned gains
The Live tab: a step is injected, the loop converges, and gains are computed from the actual response.

Match review

PERCH Match Review tab — match telemetry cycling through channels
Match Review: replay a telemetry log, get loop/voltage/channel reports and a tuning suggestion.