Credits#
The WPILib documentation#
This course is built on top of the WPILib documentation, the official FRC programming reference, written by the WPILib contributors.
Parts of this course are adapted from the WPILib documentation, which is licensed under the Creative Commons Attribution 4.0 International License (CC BY 4.0). Source: wpilibsuite/frc-docs (the stable branch, for the 2026 season).
Everything adapted from the WPILib docs is marked where it appears:
- Boxes titled "From the WPILib docs" contain text adapted from the docs, with a link to the original page.
- Diagrams and screenshots from the docs have a caption naming the source page.
- The interactive PID tuning simulators are WPILib's, with a caption naming the source page.
Changes made: text was shortened, reworded for beginners, and combined with this course's own explanations; some terms were changed to match this course (for example, "measurement" instead of "output"). Diagrams and screenshots are unchanged. The simulator scripts are combined into one file, the same way the WPILib docs build them, and are otherwise unchanged.
Adapted material, by page#
The simulators also load a small script of our own, pid-tune-fixes.js, which makes their graphs keep drawing when the simulator is taller than the screen (on phones). It doesn't change how the simulations behave.
Mantik, by Itkan Robotics#
Lessons 17–21 and Lab 11 are partly adapted from Mantik, an FRC programming course by Itkan Robotics. Mantik's lesson text is licensed under the Creative Commons Attribution 4.0 International License (CC BY 4.0); its code is BSD-3-Clause.
Changes made: the lessons were rewritten for beginners in this course's format, and the examples were rewritten for the RoboJacks West Coast Drive (Through Bore Encoders on the roboRIO, NavX2, CIMs), WPILib 2026, and the course's telemetry library. Some sections were added (calibration steps for the WCD, differential-drive PathPlanner setup, red-alliance notes); a few statements were corrected against vendor documentation. Each adapted page ends with a credit line.
| In this course | Adapted from (Mantik) |
|---|---|
| Lesson 17: Poses and Odometry | Introduction to Pose Estimation; Odometry |
| Lesson 18: Vision | Fused Pose Estimation; Pose Estimation Calibration (rewritten for PhotonVision) |
| Lesson 19: PathPlanner | PathPlanner: Visual Autonomous Routines |
| Lesson 20: Logs, AdvantageScope & AdvantageKit | AdvantageScope; AdvantageKit; Hardware Abstraction with IO Layers |
| Lesson 21: Swerve Drive | Swerve Drive Example; Odometry |
| Lab 11: Odometry | Odometry; Pose Estimation Calibration |
The site's search box was inspired by Mantik's site search; it's written for this course and doesn't use Mantik's code.
Third-party libraries and their documentation#
Lessons 18–20 teach libraries made by other teams and projects. Their licenses, checked in each project's repository:
| Project | Software license | Documentation license |
|---|---|---|
| PathPlanner and PathPlannerLib | MIT, © Michael Jansen | MIT (the docs are in the same repository) |
| PhotonLib (robot-side library) | MIT, © PhotonVision | CC BY 4.0 |
| PhotonVision (coprocessor software) | GNU GPL v3 | CC BY 4.0 |
| NMRC code camp level 2 (2026) | No license file (only the WPILib and AdvantageKit template licenses) | — |
Lesson 19.1 adapts steps from the PathPlanner documentation and uses its screenshots (the assets/pathplanner folder), © Michael Jansen, under the MIT License, whose notice is included with them. The course doesn't copy text from the PhotonVision documentation; it links to it. Lesson 18's vision subsystem follows the code camp example's approach but is written for this course.
Other sources#
- Motor specifications: REV Robotics NEO V1.1; CIM and 775pro figures from RobotPy's motor configurations.
- NavX2 API details: Studica's AHRS Java documentation.
- The course's telemetry library copies the class and method names of WPILib 2027's Telemetry and Tunables APIs, from their design documents. The code is written for this course.
- Lesson 6.1's 2027 comparison is based on WPILib's Telemetry and Tunables design documents in wpilibsuite/allwpilib and the Removed features page. The 2027 APIs were still in preview when this was written.
- PathPlannerLib API details: the PathPlanner source and documentation (2026 release). PhotonLib API details: the PhotonVision source (v2026.3.4).
- Lesson 18's vision subsystem follows PhotonVisionSubsystem.java from the NMRC code camp (level 2, 2026), adapted for a differential drive.
- Elastic connection modes and widget behavior: the Elastic documentation, by Team 353.
Trademarks#
FIRST®, FIRST® Robotics Competition, and FRC® are trademarks of FIRST. REV, SPARK MAX, NEO, and Through Bore Encoder are trademarks of REV Robotics. NavX is a trademark of Kauai Labs / Studica. This course is made by FRC Team 4674 RoboJacks and isn't affiliated with or endorsed by any of them.