Diagnostics User Guide

Lebot2 Diagnostics User Guide

A practical guide for running robot diagnostics. No code knowledge required.


Quick Start

  1. Connect - Phone/Driver Hub connected to robot via USB or WiFi
  2. Select OpMode - Choose Lebot2Diagnostics from TeleOp menu
  3. Initialize - Press INIT on driver station
  4. Run - Press START, then use gamepad to navigate tests

Controls

Button Action
D-Pad Up/Down Select test level (L0-L4)
D-Pad Left/Right Select test within level
A Run selected test (confirm motion warning if shown)
X Run all tests in current level
Y Run FULL POST (all levels)
B ABORT current test (emergency stop)

Important: Always be ready to press B to abort if something goes wrong.


Test Levels

L0: Hardware Exists

What it checks: Can the robot talk to each device?

  • No motion required
  • Safe to run anytime
  • If a test fails, check that the device is plugged in and configured correctly. Note that this won’t confirm that dumb devices are present (motors, servos, analog and digital sensors) or connected properly, but will test whether the device names in code match the saved configuration.

Common failures:

  • Device not in robot configuration
  • Loose cable connection (for i2c sensors)
  • Wrong device name in config

L1: Hardware Function

What it checks: Does each device respond to commands?

  • Some tests require robot elevated (wheels off ground)
  • Motors will spin briefly
  • Sensors will be read

Common failures:

  • Motor spins wrong direction → wiring issue
  • Sensor reads max value (8190mm) → sensor not detecting
  • Encoder doesn’t change → encoder cable issue

L2: Subsystem Behavior

What it checks: Do the subsystem behaviors work correctly?

  • Uses real robot code path
  • Tests intake, loader, launcher behaviors
  • Requires working L0/L1 first

Common failures:

  • “Robot init failed” → Fix L0/L1 issues first
  • Behavior doesn’t activate → Check subsystem code

L3: Integration

What it checks: Do multiple subsystems work together?

  • Tests parallel control domains (drive + intake simultaneously)
  • Tests targeting behavior
  • Requires space for robot motion

Common failures:

  • Targeting timeout → Check vision/AprilTag visibility
  • Parallel test fails → Check for hardware conflicts

L4: Missions

What it checks: Do complete autonomous sequences work?

  • Requires significant field space
  • Tests launch sequence, intake cycles
  • Some tests may be skipped (require Mission class)

Running at Competition

Pre-Match Checklist (Pit)

Quick Check (2 minutes):

  1. Run L0 tests → All should PASS
  2. Run L1 voltage test → Should show 12V+
  3. Spot-check one motor from each subsystem

Full Check (5-10 minutes):

  1. Run FULL POST (Y button)
  2. Note any failures
  3. For elevated tests: prop robot on blocks
  4. Address failures before queueing

On-Deck Checklist

Before each match:

  1. Run L0 tests (30 seconds)
  2. Check battery voltage
  3. Verify Limelight connection (if using vision)

Failure Triage

Symptom Check First
Motor not found Config name, cable connection
Motor spins wrong way Wiring, or note for code fix
Sensor reads 8190mm Sensor blocked or disconnected
Distance sensor flaky I2C cable, try different port
Pinpoint not updating USB cable to Pinpoint
Limelight not found Ethernet cable, power
“Robot init failed” Run L0/L1 to isolate problem

Understanding Results

Test States

State Meaning
PASS Test completed successfully
FAIL Test did not meet expected criteria
SKIPPED Test couldn’t run (missing hardware or prerequisite)
ABORTED Operator pressed B to stop
NOT_RUN Test hasn’t been attempted

Reading the Display

=== LEBOT2 DIAGNOSTICS ===
Level: L1: Hardware Function
Test: [3/10] leftRear spin

[RUNNING] Motor spinning...

Press B to abort
  • Level - Current test category
  • Test [X/Y] - Which test in the level
  • State - Current test status
  • Instructions - What’s happening or what to do

Motion Warnings

Some tests will show:

⚠️ MOTION WARNING
Robot will move ~30cm forward.
Clear the area and press A to confirm.

Always:

  • Clear people and obstacles
  • Keep hand near B button
  • Watch the robot during motion tests

Troubleshooting

“Robot init failed”

The L2+ tests need to initialize the full Robot class. If this fails:

  1. Run L0 tests to find which hardware is missing
  2. Fix hardware issues
  3. Retry L2+ tests

Tests take too long

  • L0/L1 tests should complete in <1 second each
  • L2/L3 tests may take 2-5 seconds (subsystem behaviors)
  • If a test hangs, press B to abort

Inconsistent results

  • Check battery voltage (low voltage affects motor speed)
  • Check for loose connections
  • I2C sensors can be flaky - try multiple times

Can’t select a test level

  • Use D-Pad Up/Down to change levels
  • Some levels may be empty if tests aren’t defined

Test Reference Card

Print this for pit use:

LEBOT2 DIAGNOSTICS QUICK REFERENCE
===================================
D-Pad Up/Down = Change level (L0-L4)
D-Pad Left/Right = Change test
A = Run test
X = Run level
Y = Run all (FULL POST)
B = ABORT (emergency stop)

PRE-MATCH: L0 all + L1 voltage
FULL CHECK: Y button, ~5 min

If something fails:
1. Check cables
2. Check config names
3. Ask coder team
===================================

Last updated: January 2026