diff --git a/entities/alex-c.md b/entities/alex-c.md index 7670c3c..605de5c 100644 --- a/entities/alex-c.md +++ b/entities/alex-c.md @@ -30,10 +30,10 @@ freshness: seasonal ## Training Progress -| Track | Level | Status | -|-------|-------|--------| -| FRC Programming | Expert | Active mentor | -| FRC Mechanical | Expert | Active mentor | + +- **FRC Programming** — Expert, Active mentor +- **FRC Mechanical** — Expert, Active mentor + ## Notes - 21 years FRC veteran — helped start multiple teams diff --git a/entities/big-papa.md b/entities/big-papa.md index 78c86af..5ddec39 100644 --- a/entities/big-papa.md +++ b/entities/big-papa.md @@ -24,10 +24,10 @@ freshness: seasonal ## Training Progress -| Track | Level | Status | Last Updated | -|-------|-------|--------|--------------| -| Leadership | Beginner | Unknown | — | -| Coaching | Beginner | Unknown | — | + +- **Leadership** — Beginner, Unknown +- **Coaching** — Beginner, Unknown + ## Notes - Student coach for 2026 season diff --git a/entities/bruno.md b/entities/bruno.md index 70796fa..ba388c5 100644 --- a/entities/bruno.md +++ b/entities/bruno.md @@ -31,11 +31,11 @@ freshness: seasonal ## Training Progress -| Track | Level | Status | Last Updated | -|-------|-------|--------|--------------| -| Mechanical | Beginner | In progress | 2026-05-05 | -| Fusion 360 | Intermediate | Practicing | 2026-05-05 | -| PathPlanner | Beginner | Not started | — | + +- **Mechanical** — Beginner, In progress (updated 2026-05-05) +- **Fusion 360** — Intermediate, Practicing (updated 2026-05-05) +- **PathPlanner** — Beginner, Not started + ## Current Tasks (from board) @@ -61,15 +61,15 @@ freshness: seasonal ## Achievements Earned -| Badge | Earned Date | Notes | -|-------|-------------|-------| -| — | — | None yet | + +- No badges earned yet + ## Completions Log -| Date | Action | Details | -|------|--------|---------| -| 2026-05-05 | Skills updated | Added Fusion 360 intermediate, PathPlanner beginner | + +- *2026-05-05* — Skills updated: Added Fusion 360 intermediate, PathPlanner beginner + --- diff --git a/entities/chris-slater.md b/entities/chris-slater.md index dec870e..6f64b6c 100644 --- a/entities/chris-slater.md +++ b/entities/chris-slater.md @@ -37,11 +37,11 @@ freshness: seasonal ## Training Progress -| Track | Level | Status | -|-------|-------|--------| -| Leadership | Expert | Active | -| CAD/3D Printing | Expert | Active | -| FRC Coaching | Expert | Active | + +- **Leadership** — Expert, Active +- **CAD/3D Printing** — Expert, Active +- **FRC Coaching** — Expert, Active + ## Notes - Primary decision-maker for team 2890 diff --git a/entities/fox.md b/entities/fox.md index ebbf2ee..e2d0a8c 100644 --- a/entities/fox.md +++ b/entities/fox.md @@ -24,9 +24,9 @@ freshness: seasonal ## Training Progress -| Track | Level | Status | Last Updated | -|-------|-------|--------|--------------| -| Electrical | Beginner | Unknown | — | + +- **Electrical** — Beginner, Unknown + ## Related Training Hubs diff --git a/entities/greyson-w.md b/entities/greyson-w.md index 830f2ad..cfc2ba0 100644 --- a/entities/greyson-w.md +++ b/entities/greyson-w.md @@ -26,10 +26,10 @@ freshness: seasonal ## Training Progress -| Track | Level | Status | -|-------|-------|--------| -| Programming | Advanced | Alumni mentor | -| FRC Coding | Expert | Available | + +- **Programming** — Advanced, Alumni mentor +- **FRC Coding** — Expert, Available + ## Notes - Top coder on the team when a student diff --git a/entities/jacob-firebreaker019.md b/entities/jacob-firebreaker019.md index 854cdb5..380ef44 100644 --- a/entities/jacob-firebreaker019.md +++ b/entities/jacob-firebreaker019.md @@ -27,9 +27,9 @@ freshness: seasonal ## Training Progress -| Track | Level | Status | Last Updated | -|-------|-------|--------|--------------| -| Driver | Active | Training | 2026-05-05 | + +- **Driver** — Active, Training (updated 2026-05-05) + ## Behavioral Notes - Doesn't always listen to Bone Daddy (Big Papa) diff --git a/entities/jacob-m-jawarrior.md b/entities/jacob-m-jawarrior.md index fa16ae5..01afafa 100644 --- a/entities/jacob-m-jawarrior.md +++ b/entities/jacob-m-jawarrior.md @@ -27,10 +27,10 @@ freshness: seasonal ## Training Progress -| Track | Level | Status | Last Updated | -|-------|-------|--------|--------------| -| Programming | Beginner | Unknown | — | -| YAGSL | Beginner | Not started | — | + +- **Programming** — Beginner, Unknown +- **YAGSL** — Beginner, Not started + ## Notes - Known for being tall and technically minded diff --git a/entities/jacoby-powell.md b/entities/jacoby-powell.md index 7a112c3..3a8e437 100644 --- a/entities/jacoby-powell.md +++ b/entities/jacoby-powell.md @@ -29,9 +29,9 @@ The following nicknames were all used at various times: Jacuzzi, Jakota, Jamonda ## Training Progress -| Track | Level | Status | -|-------|-------|--------| -| General | Advanced | Alumni mentor | + +- **General** — Advanced, Alumni mentor + ## Notes - Trusted former student — can be looped in for advice/mentoring diff --git a/entities/kiera.md b/entities/kiera.md index ffcf902..ac76d00 100644 --- a/entities/kiera.md +++ b/entities/kiera.md @@ -25,9 +25,9 @@ freshness: seasonal ## Training Progress -| Track | Level | Status | Last Updated | -|-------|-------|--------|--------------| -| Mascot | Active | Designated | 2024 DCMP | + +- **Mascot** — Active, Designated (updated 2024 DCMP) + ## Notes - Team mascot designation decided at 2024 DCMP event diff --git a/entities/kp.md b/entities/kp.md index f59518c..62c13eb 100644 --- a/entities/kp.md +++ b/entities/kp.md @@ -30,9 +30,9 @@ freshness: seasonal ## Training Progress -| Track | Level | Status | -|-------|-------|--------| -| Rules | Expert | Active | + +- **Rules** — Expert, Active + ## Notes - Go-to person for rule interpretations at competitions diff --git a/entities/matthew.md b/entities/matthew.md index f88a908..fa9e61b 100644 --- a/entities/matthew.md +++ b/entities/matthew.md @@ -25,9 +25,9 @@ freshness: seasonal ## Training Progress -| Track | Level | Status | Last Updated | -|-------|-------|--------|--------------| -| General | Observer | Passive | — | + +- **General** — Observer, Passive + ## Notes - Observer status — present but not actively participating in training tracks yet diff --git a/entities/mr-douglas.md b/entities/mr-douglas.md index bc5b29c..941babe 100644 --- a/entities/mr-douglas.md +++ b/entities/mr-douglas.md @@ -35,10 +35,10 @@ freshness: seasonal ## Training Progress -| Track | Level | Status | -|-------|-------|--------| -| Programming | Advanced | Active | -| Paperwork | Lead | Active | + +- **Programming** — Advanced, Active +- **Paperwork** — Lead, Active + ## Notes - Paperwork lead for the team diff --git a/entities/riley.md b/entities/riley.md index 82c8a9d..d7f7690 100644 --- a/entities/riley.md +++ b/entities/riley.md @@ -29,11 +29,11 @@ freshness: seasonal ## Training Progress -| Track | Level | Status | Last Updated | -|-------|-------|--------|--------------| -| Mechanical | Intermediate | Active | 2026-05-05 | -| Fusion 360 | Intermediate | Strong operator | 2026-05-05 | -| Driver | Former | — | — | + +- **Mechanical** — Intermediate, Active (updated 2026-05-05) +- **Fusion 360** — Intermediate, Strong operator (updated 2026-05-05) +- **Driver** — Former, — + ## Current Tasks - Rebuild climber assembly (high priority) diff --git a/entities/ryan.md b/entities/ryan.md index d38750f..111859a 100644 --- a/entities/ryan.md +++ b/entities/ryan.md @@ -25,9 +25,9 @@ freshness: seasonal ## Training Progress -| Track | Level | Status | Last Updated | -|-------|-------|--------|--------------| -| Operator | Active | Training | 2026-05-05 | + +- **Operator** — Active, Training (updated 2026-05-05) + ## Notes - Operator during competition matches diff --git a/entities/steven.md b/entities/steven.md index e08cc2f..e8bd2b5 100644 --- a/entities/steven.md +++ b/entities/steven.md @@ -25,9 +25,9 @@ freshness: seasonal ## Training Progress -| Track | Level | Status | Last Updated | -|-------|-------|--------|--------------| -| Human Player | Beginner | Unknown | — | + +- **Human Player** — Beginner, Unknown + ## Notes - Human Player during competition matches diff --git a/entities/walt.md b/entities/walt.md index 05ba955..a3ebe65 100644 --- a/entities/walt.md +++ b/entities/walt.md @@ -31,10 +31,10 @@ freshness: seasonal ## Training Progress -| Track | Level | Status | -|-------|-------|--------| -| Mechanical | Intermediate | Active mentor | -| Bumpers | Expert | Active mentor | + +- **Mechanical** — Intermediate, Active mentor +- **Bumpers** — Expert, Active mentor + ## Notes - Old guy — brings experience from previous seasons diff --git a/training/hubs/swerve-training-hub.md b/training/hubs/swerve-training-hub.md index 7b2fc2a..6aee11c 100644 --- a/training/hubs/swerve-training-hub.md +++ b/training/hubs/swerve-training-hub.md @@ -23,14 +23,12 @@ This hub guides students through the **Team 2890 swerve drivetrain** — from ho ## Hardware Stack -| Component | Spec | Doc | -|-----------|------|-----| -| **Motor** | NEO Vortex (565 Kv, 6784 RPM) | [[neo-vortex-motor]] | -| **Controller** | SPARK Flex (60A continuous) | [[spark-flex]] | -| **Gearbox** | MAXPlanetary (27 ratios, cartridge-based) | [[maxplanetary-gearbox]] | -| **Module** | SDS MK4i (L1/L3 field-swappable) | [[swere-modules]] | -| **CAN Interconnect** | Canjectors (Endz/Minor/Major) | [[canjectors]] | -| **Odometry** | CANcoder + YAGSL | [[mothman-robot-code]] | +- **Motor** — NEO Vortex (565 Kv, 6784 RPM) → [[neo-vortex-motor]] +- **Controller** — SPARK Flex (60A continuous) → [[spark-flex]] +- **Gearbox** — MAXPlanetary (27 ratios, cartridge-based) → [[maxplanetary-gearbox]] +- **Module** — SDS MK4i (L1/L3 field-swappable) → [[swerve-modules]] +- **CAN Interconnect** — Canjectors (Endz/Minor/Major) → [[canjectors]] +- **Odometry** — CANcoder + YAGSL → [[mothman-robot-code]] ## Learning Path @@ -57,10 +55,8 @@ This hub guides students through the **Team 2890 swerve drivetrain** — from ho ## Student Progress -| Student | Level | Status | Last Active | -|---------|-------|--------|------------| -| [[bruno]] | Level 1-2 | In progress — roller coaster + battery box | 2026-05-05 | -| [[riley]] | Level 2-3 | Strong CAD operator, rebuilding climber | 2026-05-05 | +- **[[bruno]]** — Level 1-2, in progress (roller coaster + battery box) — last active 2026-05-05 +- **[[riley]]** — Level 2-3, strong CAD operator, rebuilding climber — last active 2026-05-05 ## Training Resources diff --git a/training/modules/2890-codebase-index.md b/training/modules/2890-codebase-index.md index 5862366..e593b38 100644 --- a/training/modules/2890-codebase-index.md +++ b/training/modules/2890-codebase-index.md @@ -89,12 +89,10 @@ Mothman/ ### 🎮 Subsystems -| File | What it Controls | -|------|------------------| -| `ClimberSubsystem.java` | Robot climber mechanism | -| `IntakeSubsystem.java` | Game piece intake | -| `ShooterSubsystem.java` | Scoring shooter | -| `TargetingSubsystems.java` | Aim assist | +- `ClimberSubsystem.java` — Robot climber mechanism +- `IntakeSubsystem.java` — Game piece intake +- `ShooterSubsystem.java` — Scoring shooter +- `TargetingSubsystems.java` — Aim assist **Training value:** - Subsystem architecture (commands bound to triggers) @@ -104,17 +102,15 @@ Mothman/ ### ⚙️ Vendor Dependencies (vendordeps/) -| Library | Purpose | -|---------|---------| -| `Phoenix5-replay-5.36.0.json` | TalonFX (legacy) | -| `Phoenix6-replay-26.1.0.json` | TalonFX (new) | -| `REVLib.json` | NEO, SparkFlex motors | -| `PathplannerLib-2026.1.2.json` | Auto/path planning | -| `photonlib.json` | PhotonVision | -| `yagsl-2026.1.14.json` | Swerve library | -| `ReduxLib-2026.1.1.json` | Sensors | -| `Studica-2026.0.0.json` | Contour following | -| `ThriftyLib-2026.json` | Thrifty cameras | +- `Phoenix5-replay-5.36.0.json` — TalonFX (legacy) +- `Phoenix6-replay-26.1.0.json` — TalonFX (new) +- `REVLib.json` — NEO, SparkFlex motors +- `PathplannerLib-2026.1.2.json` — Auto/path planning +- `photonlib.json` — PhotonVision +- `yagsl-2026.1.14.json` — Swerve library +- `ReduxLib-2026.1.1.json` — Sensors +- `Studica-2026.0.0.json` — Contour following +- `ThriftyLib-2026.json` — Thrifty cameras --- @@ -122,13 +118,11 @@ Mothman/ **For C++ teams learning from Java code:** -| Pattern | Java (Mothman) | C++ (WPILib) | -|---------|----------------|--------------| -| Subsystem class | `extends SubsystemBase` | Inherit `frc::SubsystemBase` | -| Command binding | `+=` operator | `AddCommands()` | -| Motor controller | `.set()` | `Set()` | -| Joystick input | `driver.getRawButton()` | `GetRawButton()` | -| Auto commands | `pathplanner` | `pathplanner` (same lib) | +- **Subsystem class** — Java: `extends SubsystemBase` → C++: Inherit `frc::SubsystemBase` +- **Command binding** — Java: `+=` operator → C++: `AddCommands()` +- **Motor controller** — Java: `.set()` → C++: `Set()` +- **Joystick input** — Java: `driver.getRawButton()` → C++: `GetRawButton()` +- **Auto commands** — `pathplanner` (same library in both languages) --- @@ -148,11 +142,9 @@ Mothman/ ## External Mirrors -| Repo | URL | Purpose | -|------|-----|---------| -| PhotonVision | Team2890/PhotonVision | Vision processing (mirrored from github) | -| YAGSL | Team2890/YAGSL | Swerve library (mirrored) | -| allwpilib | Team2890/allwpilib | WPILib source (mirrored) | +- **PhotonVision** → Team2890/PhotonVision — Vision processing (mirrored from github) +- **YAGSL** → Team2890/YAGSL — Swerve library (mirrored) +- **allwpilib** → Team2890/allwpilib — WPILib source (mirrored) --- diff --git a/training/modules/gear-ratio-mechanism-design.md b/training/modules/gear-ratio-mechanism-design.md index 72c9413..71c25b7 100644 --- a/training/modules/gear-ratio-mechanism-design.md +++ b/training/modules/gear-ratio-mechanism-design.md @@ -47,13 +47,11 @@ Ask these questions: For each mechanism: -| Mechanism | Key Metric | Typical Range | -|-----------|------------|---------------| -| Drivetrain | Top speed | 10-15 ft/s | -| Elevator | Lift speed | 3-6 ft/s | -| Arm | Rotation speed | 90-180°/sec | -| Intake | Roll speed | Fast (1-2 sec) | -| Shooter | RPM | 3000-6000 RPM | +- **Drivetrain** — Key metric: top speed. Typical: 10-15 ft/s +- **Elevator** — Key metric: lift speed. Typical: 3-6 ft/s +- **Arm** — Key metric: rotation speed. Typical: 90-180°/sec +- **Intake** — Key metric: roll speed. Typical: fast (1-2 sec) +- **Shooter** — Key metric: RPM. Typical: 3000-6000 RPM ### Step 3: Match Motor to Load @@ -78,14 +76,10 @@ Find gear ratio Team 2890 uses **L1 and L3** on MK4i modules with NEO Vortex: -| Ratio | Speed | Torque | Use When | -|-------|-------|--------|----------| -| **L1** (8.14:1) | ~14.4 ft/s | Lower | High speed needed, less pushing | -| **L3** (6.12:1) | ~12.8 ft/s | Higher | More pushing power, climbing | +- **L1 (8.14:1)** — ~14.4 ft/s, lower torque. Use when high speed needed, less pushing. +- **L3 (6.12:1)** — ~12.8 ft/s, higher torque. Use when more pushing power, climbing. -**L1 = faster, less torque. L3 = slower, more torque.** - -Swap based on game demands. Field-swappable. +**L1 = faster, less torque. L3 = slower, more torque.** Swap based on game demands. Field-swappable. ## Mechanism Design Guidelines @@ -138,12 +132,10 @@ Motor → Direct or light reduction → Roller ## Common FRC Motor/Gearbox Pairings -| Motor | Typical Gearbox | Output | Use | -|-------|----------------|--------|-----| -| NEO Vortex | Built-in 4:1 | 1696 RPM | Drivetrain, mechanisms | -| NEO Vortex + planetary | External reduction | Variable | Elevators, arms | -| Falcon 500 | Integrated | 1680 RPM | Drivetrain, high torque | -| Kraken X60 | Integrated | ~1680 RPM | Newer alternative to Falcon | +- **NEO Vortex** — Built-in 4:1, 1696 RPM output. Drivetrain, mechanisms. +- **NEO Vortex + planetary** — External reduction, variable output. Elevators, arms. +- **Falcon 500** — Integrated, 1680 RPM output. Drivetrain, high torque. +- **Kraken X60** — Integrated, ~1680 RPM output. Newer alternative to Falcon. ## The Calculation @@ -180,7 +172,7 @@ When designing a mechanism: ## Related -- [[swere-modules]] — MK4i gear options for drivetrain +- [[swerve-modules]] — MK4i gear options for drivetrain - [[neo-vortex-motor]] — motor specs - [[spark-flex]] — controller configuration - [[motor-basics]] — understanding motor curves diff --git a/training/modules/megatag.md b/training/modules/megatag.md index a0878e6..68eb8f8 100644 --- a/training/modules/megatag.md +++ b/training/modules/megatag.md @@ -29,12 +29,8 @@ MegaTag is a **Limelight-specific** robot localization system that uses AprilTag ## MegaTag vs. MegaTag2 -| Feature | MegaTag 1 | MegaTag 2 | -|---------|-----------|-----------| -| Data source | AprilTag vision only | AprilTag + IMU fusion | -| Accuracy | Good when tags visible | Better — gyro corrects drift | -| Drift | Accumulates over time | Reduced by gyro correction | -| Tag visibility required | Yes | Yes (but less sensitive) | +- **MegaTag 1** — AprilTag vision only. Good when tags visible, accumulates drift over time. +- **MegaTag 2** — AprilTag + IMU fusion. Gyro corrects drift, less sensitive to partial tag visibility. **MegaTag 2** fuses robot orientation data from the IMU with vision pose. This means even if vision is slightly noisy or a tag is partially visible, the gyro steadies the reading. @@ -91,13 +87,11 @@ This is critical for: ## Common Issues and Troubleshooting -| Problem | Likely Cause | Fix | -|---------|--------------|-----| -| Pose always offset in same direction | Camera calibration wrong | Check camera tilt, height, direction | -| Pose jumps when tag visible | Vision trusting single reading | Add filtering, check timing | -| No pose when tags visible | Camera not processing tags | Check PhotonVision pipeline | -| Odometry drifts despite vision | Vision not being added to estimator | Check `addVisionMeasurement` call | -| Gyro disagrees with vision | Gyro calibration issue | Re-calibrate gyro, check wiring | +- **Pose always offset in same direction** → Camera calibration wrong. Check camera tilt, height, direction. +- **Pose jumps when tag visible** → Vision trusting single reading. Add filtering, check timing. +- **No pose when tags visible** → Camera not processing tags. Check PhotonVision pipeline. +- **Odometry drifts despite vision** → Vision not being added to estimator. Check `addVisionMeasurement` call. +- **Gyro disagrees with vision** → Gyro calibration issue. Re-calibrate gyro, check wiring. ## Connection to Training @@ -112,7 +106,7 @@ The MegaTag concept (vision + gyro fusion) is the same regardless of whether you ## Related - [[photonvision]] — Team 2890's vision system -- [[swere-modules]] — MK4i with encoders for odometry +- [[swerve-modules]] — MK4i with encoders for odometry - [[systemcore]] — upcoming controller with improved processing --- diff --git a/training/modules/yagsl.md b/training/modules/yagsl.md index 17241d4..416af8e 100644 --- a/training/modules/yagsl.md +++ b/training/modules/yagsl.md @@ -306,15 +306,13 @@ See [[photonvision]] for the full AprilTag pipeline. ## Common Problems -| Problem | Likely Cause | Fix | -|----------|-------------|-----| -| Wheel spins backward | `inverted.drive` is wrong | Flip the boolean | -| Wheel steers wrong direction | `inverted.angle` is wrong | Flip the boolean | -| Robot drifts while driving straight | Encoder offset wrong, or angle PID not tuned | Re-verify offsets, then tune angle PID | -| Robot won't go straight on its own | No heading correction enabled | Use `swerveDrive.setHeadingCorrection(true)` | -| "Invalid year" vendordep error | YAGSL JSON has wrong FRC year | Update vendordep URL to current year | -| Modules don't align on startup | Offset not set or wrong CAN ID | Verify offsets and CAN IDs | -| Odometry doesn't match field | Module physical positions in JSON are wrong | Re-measure and update `location` fields | +- **Wheel spins backward** → `inverted.drive` is wrong. Flip the boolean. +- **Wheel steers wrong direction** → `inverted.angle` is wrong. Flip the boolean. +- **Robot drifts while driving straight** → Encoder offset wrong, or angle PID not tuned. Re-verify offsets, then tune angle PID. +- **Robot won't go straight on its own** → No heading correction enabled. Use `swerveDrive.setHeadingCorrection(true)`. +- **"Invalid year" vendordep error** → YAGSL JSON has wrong FRC year. Update vendordep URL to current year. +- **Modules don't align on startup** → Offset not set or wrong CAN ID. Verify offsets and CAN IDs. +- **Odometry doesn't match field** → Module physical positions in JSON are wrong. Re-measure and update `location` fields. ## 2026 Migration Notes diff --git a/training/pathways/index.md b/training/pathways/index.md index adbd12c..6709d65 100644 --- a/training/pathways/index.md +++ b/training/pathways/index.md @@ -14,11 +14,9 @@ The Hawk Collective uses a badge-based training system with three tracks. Each t ## The Three Tracks -| Track | Level 1 | Level 2 | Level 3 | -|-------|---------|---------|---------| -| **Electrical** | Component identification | Board build + signaling | Troubleshooting | -| **Mechanical** | Chassis + actuators | Advanced mechanisms | — | -| **Pneumatics** | Component identification | System design | — | +- **Electrical** — Component ID → Board build + signaling → Troubleshooting +- **Mechanical** — Chassis + actuators → Advanced mechanisms +- **Pneumatics** — Component ID → System design ---