Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
3a49ba2
Major changes to homepage and getting started, trying to keep one page
arbessette Jun 4, 2026
3e6b8ca
Continue working on CI fixes
arbessette Jun 4, 2026
a7de5d9
Working on CI fixes
arbessette Jun 4, 2026
0b12b01
Suppress rediraffe warnings from upstream redirect conflicts
arbessette Jun 5, 2026
4c9e41d
Still fixing CI checks
arbessette Jun 5, 2026
d1ad5d4
Fix PDF filename to match CI expectation (wpilib.pdf)
arbessette Jun 5, 2026
a1d9e76
Clean up CSS files and fix dark mode text
arbessette Jun 9, 2026
292e6c0
Content review
arbessette Jun 17, 2026
ad0c893
change step pages to sphinx-design
arbessette Jun 18, 2026
e1731d2
change introduction to sphinx-design
arbessette Jun 18, 2026
7958da1
change pages from html to sphinx
arbessette Jun 22, 2026
5d15c5a
change pages from html to sphinx
arbessette Jun 22, 2026
c35a6ac
fix latex build: remove emoji conflicts
arbessette Jun 22, 2026
5e596ae
expand and mirror FTC homepage from current
arbessette Jul 24, 2026
55e0337
changed zero-to-robot steps and hardware overview from raw HTML to R…
arbessette Jul 27, 2026
ecc8139
migrate YouTube embeds from raw HTML to :: directive
arbessette Jul 28, 2026
f37d466
migrate remaining youtube
arbessette Jul 28, 2026
21d1b28
addresses comments and some additional adjustments; still need to fix…
arbessette Jul 30, 2026
c4f1a03
fix white space
arbessette Jul 31, 2026
0cd3688
more updates, fix darkmode and rework Step 1
arbessette Aug 6, 2026
a246934
Update source/docs/software/what-is-wpilib.rst
arbessette Aug 7, 2026
3107cd3
updates from comments
arbessette Aug 10, 2026
a843cba
fix spelling
arbessette Aug 11, 2026
24f9a00
WIP: Zero to Robot / FTC rework (not final)
arbessette Aug 25, 2026
898e674
WIP: Zero to Robot rework (not final)
arbessette Aug 31, 2026
879d840
more restructuring, not final
arbessette Sep 8, 2026
8344f3e
fix redirects
arbessette Sep 9, 2026
89df47d
fix CI
arbessette Sep 9, 2026
c8a4f84
missing redirect
arbessette Sep 10, 2026
27d85d1
minor updates
arbessette Sep 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ dependencies = [
"frccontrol==2026.11",
"furo==2025.12.19",
"sphinx-build-compatibility",
"sphinxcontrib-youtube>=1.5.0",
]

[tool.uv]
Expand Down
455 changes: 455 additions & 0 deletions source/_static/css/sw-components.css

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions source/_static/css/wpilib-rtd.css
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ code.py-class, code.py-func, code.py-meth {
all: unset!important;
}

/*
* Top color bar
/*
* Top color bar
*/

.page::before {
Expand All @@ -68,7 +68,7 @@ body {
margin-top: 10px;
}

/*
/*
* Sidebar styling
*/

Expand Down
12 changes: 6 additions & 6 deletions source/_templates/base.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{% extends '!base.html' %}
{% extends '!base.html' %}
{% block extrabody %}
<div class="header-bar">
<div class="link-bar-container">
Expand Down Expand Up @@ -27,12 +27,12 @@
</div>
</div>
</div>
{% endblock %}
{% endblock %}

{%- block regular_scripts -%}
{% for path in script_files -%}
{{ js_tag(path) }}
{% endfor -%}
{%- block regular_scripts -%}
{% for path in script_files -%}
{{ js_tag(path) }}
{% endfor -%}
{%- if READTHEDOCS %}
<script>
if (typeof READTHEDOCS_DATA !== "undefined") {
Expand Down
8 changes: 4 additions & 4 deletions source/_templates/sidebar/brand.html
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
{% extends '!sidebar/brand.html' %} {# This is mostly copied from
https://github.com/pradyunsg/furo/blob/main/src/furo/theme/furo/sidebar/brand.html -#}
{% block brand_content %}
{% block brand_content %}
{% if not theme_sidebar_hide_name %}
<span class="sidebar-brand-text"
>{{ project }}</span
><strong>{{ project }}</strong></span
>{% endif %}
{%- if logo_url %}
<div class="sidebar-logo-container">
<img class="sidebar-logo" src="{{ logo_url }}" alt="Logo?" />
</div>
{%- endif %}
{%- endif %}
{%- if theme_light_logo and theme_dark_logo %}
<div class="sidebar-logo-container">
<img
Expand All @@ -23,7 +23,7 @@
alt="Dark Logo"
/>
</div>
{%- endif %}
{%- endif %}

{%- set nav_version = version %}
{% if READTHEDOCS and current_version %}
Expand Down
5 changes: 5 additions & 0 deletions source/_templates/sidebar/legend.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<div class="sidebar-legend">
<span class="sidebar-legend-item"><span class="sidebar-legend-dot sidebar-legend-dot-frc"></span>FRC</span>
<span class="sidebar-legend-item"><span class="sidebar-legend-dot sidebar-legend-dot-ftc"></span>FTC</span>
<span class="sidebar-legend-item"><span class="sidebar-legend-dot sidebar-legend-dot-shared"></span>Shared</span>
</div>
20 changes: 17 additions & 3 deletions source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
"sphinx.ext.intersphinx",
"sphinxcontrib.rsvgconverter",
"sphinxcontrib.video",
"sphinxcontrib.youtube",
"sphinxext.delta",
"sphinxext.opengraph",
"sphinxext.photofinish",
Expand Down Expand Up @@ -142,7 +143,7 @@
todo_emit_warnings = False

# TODO Directives are shown in output
todo_include_todos = True
todo_include_todos = False

# Disable following anchors in URLS for linkcheck
linkcheck_anchors = True
Expand Down Expand Up @@ -254,21 +255,23 @@
html_baseurl = "https://docs.wpilib.org/en/stable/"

html_theme_options = {
"announcement": "&#x26A0;&#xFE0F; <strong>DRAFT</strong> &mdash; This site is a work in progress and does not reflect final 2027 documentation. Content may be incomplete or inaccurate.",
"light_css_variables": {
"color-sidebar-background": "#003974",
"color-sidebar-brand-text": "#ffffffcc",
"color-sidebar-link-text--top-level": "#d9d9d9",
"color-background-hover": "#023160",
"color-sidebar-link-text": "#acb1b9",
"color-sidebar-caption-text": "#81868d",
}
},
}

html_sidebars = {
"**": [
"sidebar/scroll-start.html",
"sidebar/brand.html",
"sidebar/search.html",
"sidebar/legend.html",
"sidebar/navigation.html",
"sidebar/ethical-ads.html",
"sidebar/scroll-end.html",
Expand All @@ -283,6 +286,7 @@

def setup(app):
app.add_css_file("css/wpilib-rtd.css")
app.add_css_file("css/sw-components.css")

# Local Api Docs support
app.add_js_file("js/api-docs-redirect.js")
Expand Down Expand Up @@ -338,7 +342,17 @@ def setup(app):
"printindex": r"\footnotesize\raggedright\printindex",
}

suppress_warnings = ["epub.unknown_project_files"]
latex_documents = [
(
master_doc,
"wpilib.tex",
"FIRST Robotics Documentation",
author,
"manual",
)
]

suppress_warnings = ["epub.unknown_project_files", "ref.ref"]


# Options for translation support -------------------------------------------
Expand Down
24 changes: 24 additions & 0 deletions source/docs/api-reference.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# API Reference

WPILib provides class and method documentation for Java, C++, and Python.

.. grid:: 1 1 3 3
:gutter: 3

.. grid-item-card:: Java
:link: https://github.wpilib.org/allwpilib/docs/release/java/index.html
:class-card: sw-card-frc

Reference for Java

.. grid-item-card:: C++
:link: https://github.wpilib.org/allwpilib/docs/release/cpp/topics.html
:class-card: sw-card-frc

Reference for all C++

.. grid-item-card:: Python
:link: https://robotpy.readthedocs.io/projects/robotpy/en/stable/
:class-card: sw-card-frc

Reference for Python
2 changes: 1 addition & 1 deletion source/docs/contributing/wpilib-docs/style-guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ To create code tabs in an article, you can use the ``.. tab-set-code::`` directi
:language: java
:lines: 19-25
:lineno-match:

```c++
// Start the timer.
m_timer.Start();
Expand Down
20 changes: 20 additions & 0 deletions source/docs/ftc/basic-ftc-robot-wiring.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# FTC Robot Wiring Walkthrough

.. admonition:: Coming 2027-2028

This guide will be published ahead of the fall 2027 launch for the
2027-2028 FTC season.

`Follow the WPILib blog for updates → <https://wpilib.org/blog>`_

This page will provide complete, start-to-finish instructions for wiring a
basic drivetrain robot with Systemcore and Motioncore. It is the best starting
point for teams wiring this control system for the first time.

Topics planned for this guide:

- Powering the Systemcore
- Connecting the Motioncore motor controller hub
- Wiring motors
- Connecting sensors
- Basic cable management
24 changes: 24 additions & 0 deletions source/docs/ftc/ftc-robot-wiring-overview.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# FTC Robot Wiring Reference

.. admonition:: Coming 2027-2028

This reference will be published ahead of the fall 2027 launch for the
2027-2028 FTC season.

`Follow the WPILib blog for updates → <https://wpilib.org/blog>`_

In the meantime, the official
`Robot Wiring Guide <https://ftc-docs.firstinspires.org/en/latest/robot_building/wiring_guide/wiring-guide.html>`_
covers current control system wiring in detail.

This page will be a reference for looking up FTC control system connections
and component details while wiring or troubleshooting a robot.

Topics planned for this reference:

- Systemcore and Motioncore wiring diagrams
- Motor controller connections
- Power distribution
- Sensor wiring
- CAN bus and communication
- Pneumatics (if applicable)
116 changes: 116 additions & 0 deletions source/docs/ftc/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
# FTC with WPILib

.. admonition:: Practice Now, Compete in 2027-2028

**Systemcore** and **Motioncore** launch for FTC in **fall 2027** and become
competition legal for the **2027-2028 FTC season**. This is separate from
the Systemcore launch for the 2027 FRC season in January 2027. Alpha and
Beta hardware can be used for testing before the FTC launch: see
:doc:`Zero to Robot </docs/zero-to-robot/introduction>` to power one up and
start coding.

`Follow the WPILib blog for updates → <https://wpilib.org/blog>`_

This page is a reference for WPILib support in FTC: what's here and what's
coming. For step-by-step setup, start with
:doc:`Zero to Robot </docs/zero-to-robot/introduction>` instead. It covers
the same tools and languages used in FRC: Java, Python, Blockly, and
LabVIEW.

.. rubric:: Programming
:class: wl-ftc-text

.. grid:: 1 2 2 4
:gutter: 3

.. grid-item-card:: Java
:class-card: sw-card-ftc

**Coming 2027-2028**
^^^
Full Java support via the OnBot browser editor and VS Code
with the WPILib extension.

.. grid-item-card:: Python
:class-card: sw-card-ftc

**Coming 2027-2028**
^^^
Python support in both the OnBot environment and
desktop VS Code.

.. grid-item-card:: Blockly
:class-card: sw-card-ftc

**Coming 2027-2028**
^^^
Visual block-based programming in the browser,
no installation required.

.. grid-item-card:: LabVIEW
:class-card: sw-card-ftc

**Coming 2027-2028**
^^^
Graphical programming via the browser-based
OnBot editor.

.. rubric:: Control System
:class: wl-ftc-text

.. grid:: 1 1 2 2
:gutter: 3

.. grid-item-card:: Systemcore
:class-card: sw-card-ftc

**Coming 2027-2028**
^^^
The main FTC robot controller. Runs the full WPILib stack,
the same software foundation used in FRC.

.. grid-item-card:: Motioncore
:class-card: sw-card-ftc

**Coming 2027-2028**
^^^
Motor controller hub for FTC robots.
Works alongside Systemcore to drive mechanisms.

.. rubric:: Related Resources
:class: wl-shared-text

.. grid:: 1 1 3 3
:gutter: 3

.. grid-item-card:: Practice with the XRP
:link: ../xrp-robot/index
:link-type: doc
:class-card: sw-card-shared

Learn WPILib programming on the $75 XRP desktop robot.
Similar code runs on Systemcore.

.. grid-item-card:: What is WPILib?
:link: ../software/what-is-wpilib
:link-type: doc
:class-card: sw-card-shared

Overview of WPILib tools, languages, and how FTC fits into
the broader WPILib ecosystem.

.. grid-item-card:: Coach / Mentor Resources
:link: https://ftc-docs.firstinspires.org/en/latest/persona_pages/rookie_teams/rookie_teams.html
:link-type: url
:class-card: sw-card-shared

Team registration, mentor resources, budgeting, and the
competition manual, program-wide and independent of which
control system your team uses.

.. note::

**Currently using FTC Legacy (REV)?**
Continue programming with the FTC SDK as normal.
Full documentation at
`ftc-docs.firstinspires.org <https://ftc-docs.firstinspires.org>`_.
Loading
Loading