PlotJuggler: inspect driving signals
A development tool for comparing targets and actual responses on a time axis. For ordinary support requests, start with Carrot Web log sharing.
Useful questions
- When did target and actual speed diverge?
- Is there delay or oscillation between requested acceleration and vehicle response?
- How do driver inputs and state transitions line up with the symptom?
Plot colors depend on the layout. Identify signals and units rather than assuming green/yellow/orange have the same meaning as in old examples.
Install in the current layout
From the repository root in a prepared openpilot development environment:
cd openpilot/tools/plotjuggler
./juggle.py --installThis installs PC tools/plugins. It is not a device-settings backup or web-install command. Check dependencies and build requirements in the original README first.
Open a saved route
./juggle.py "<route-name>"Use ./juggle.py -h for range, qlog, DBC and layout options. The public log-view page can provide a PlotJuggler command with the correct route identifier.
Live streaming
On the device shell, on the same network:
cd /data/openpilot
./openpilot/cereal/messaging/bridgeOn the PC development shell, in the PlotJuggler directory:
ZMQ=1 ./juggle.py --streamStart with Streaming's Cereal Subscriber. The environment-variable syntax above is POSIX shell syntax, not Windows PowerShell syntax.
Align log time with driver intervention first and compare the same signals and units. Correlation alone does not establish the control cause.
Source reference
Reference checked 2026-10-30 · carrot-wip · 10bf0a56.
openpilot/tools/plotjuggler/README.md · docs/user/ko/dashcam-log-sharing.md
The development branch continues to change. Check your device’s branch, commit and current settings together.