panels
SKILL.md
Panels Dashboard
Panels (by Lazar/ByteForce) is a web-based dashboard for FTC robots providing telemetry, graphs, and live configuration.
Quick Start
Add dependency in TeamCode/build.gradle:
implementation "com.bylazar:fullpanels:1.0.6"
Access dashboard at 192.168.43.1:8001 when connected to robot WiFi.
Core Plugins
Telemetry Plugin
Text-based telemetry mirroring Driver Hub output.
// Standard FTC telemetry works automatically
telemetry.addData("Position", follower.getPose());
telemetry.addData("State", pathState);
telemetry.update();
Graph Plugin
Visualize data over time - useful for PID tuning and control system validation.
// Add values to graph in loop()
telemetry.addData("Motor Power", motor.getPower());
telemetry.addData("Target Position", targetPos);
telemetry.addData("Current Position", currentPos);
telemetry.update(); // REQUIRED after adding telemetry
Configurables Plugin
Tunable variables that update in real-time.
@Configurable
public class MyOpMode extends OpMode {
// These can be adjusted live from dashboard
public static double kP = 0.1;
public static double kI = 0.0;
public static double kD = 0.01;
public static double targetPosition = 100;
}
Use @Configurable annotation on your OpMode class, then declare public static fields.
Capture Plugin
Records debugging data for offline replay - debug without robot connected.
Dashboard Features
OpMode Control
- Start/stop OpModes from dashboard
- Separate autonomous and teleop sections
- Built-in safety timers
Gamepad Support
- Two FTC gamepad inputs
- Pre-configured button mapping
- Wireless robot control through dashboard
Monitoring
- Battery level tracking
- Network latency/delay monitoring
- Automatic plugin update notifications
Themes & Layout
- Customizable colors
- Resizable widget panels
- Grid-based layout
- Tabbed widget groups
Usage Pattern
@Configurable
@TeleOp(name = "Debug TeleOp")
public class DebugTeleOp extends OpMode {
// Live-tunable from dashboard
public static double driveSpeed = 0.8;
public static double turnSpeed = 0.6;
@Override
public void loop() {
// Telemetry shows in dashboard
telemetry.addData("Drive Speed", driveSpeed);
telemetry.addData("Turn Speed", turnSpeed);
telemetry.addData("Left Stick Y", gamepad1.left_stick_y);
// Use configurable values
double drive = -gamepad1.left_stick_y * driveSpeed;
double turn = gamepad1.right_stick_x * turnSpeed;
telemetry.update();
}
}
Reference
- CONFIGURABLES.md - Detailed configurable patterns
- Dashboard URL:
http://192.168.43.1:8001 - Documentation: https://panels.bylazar.com/docs
Weekly Installs
2
Repository
ncssm-robotics/…c-claudeFirst Seen
Feb 6, 2026
Security Audits
Installed on
claude-code2
mcpjam1
kilo1
junie1
windsurf1
zencoder1