From 52ca48f8bc7d940dd5209f073252afabe510a034 Mon Sep 17 00:00:00 2001
From: 28shettr <28shettr@elmbrookstudents.org>
Date: Thu, 6 Aug 2026 12:11:51 -0500
Subject: [PATCH 01/11] a
---
.idea/caches/deviceStreaming.xml | 37 ++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/.idea/caches/deviceStreaming.xml b/.idea/caches/deviceStreaming.xml
index 963f4e3..e112b74 100644
--- a/.idea/caches/deviceStreaming.xml
+++ b/.idea/caches/deviceStreaming.xml
@@ -75,6 +75,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -771,6 +783,11 @@
+
@@ -1228,6 +1245,11 @@
+
+
+
+
+
@@ -1604,6 +1626,11 @@
+
+
+
+
+
@@ -2027,6 +2054,11 @@
+
+
+
+
+
@@ -2039,6 +2071,11 @@
+
+
+
+
+
From 67501ff9f4d0e1e8203a1515e36356595396283e Mon Sep 17 00:00:00 2001
From: 28shettr <28shettr@elmbrookstudents.org>
Date: Thu, 6 Aug 2026 12:13:14 -0500
Subject: [PATCH 02/11] gamepad and telemetry moved to this branch
---
src/content/docs/robot/command-gamepad.mdx | 79 ++++++++++++++
src/content/docs/robot/telemtry.mdx | 114 +++++++++++++++++++++
2 files changed, 193 insertions(+)
create mode 100644 src/content/docs/robot/command-gamepad.mdx
create mode 100644 src/content/docs/robot/telemtry.mdx
diff --git a/src/content/docs/robot/command-gamepad.mdx b/src/content/docs/robot/command-gamepad.mdx
new file mode 100644
index 0000000..5f52234
--- /dev/null
+++ b/src/content/docs/robot/command-gamepad.mdx
@@ -0,0 +1,79 @@
+---
+title: Command Gamepad
+description: Mapping gamepad buttons to Triggers with CommandGamepad
+sidebar:
+ order: 1
+---
+
+import { Tabs, TabItem } from "@astrojs/starlight/components";
+
+`CommandGamepad` wraps the standard FTC `Gamepad` and exposes its buttons and sticks as command-based `Trigger`s.
+This lets you map controller inputs directly to commands using the WPILib-style Trigger API.
+
+## Creating a CommandGamepad
+
+
+
+
+```kotlin
+val gp1 = CommandGamepad(gamepad = gamepad1)
+```
+
+
+
+
+```java
+CommandGamepad gp1 = new CommandGamepad(Trigger.getDefaultEventLoop(), gamepad1);
+```
+
+
+
+
+`CommandGamepad` accepts an optional `eventLoop` parameter, defaulting to `Trigger.defaultEventLoop`.
+You generally won't need to override it unless you're managing multiple event loops.
+
+## Usage
+
+Every `button` is exposed as a `Trigger`, which you can bind to commands with methods like `onTrue()` or `onFalse()` etc.
+
+
+
+
+```kotlin
+gp1.circle.onTrue(robot.intake.on())
+gp1.circle.onFalse(robot.intake.off())
+```
+
+
+
+
+```java
+gp1.circle().onTrue(robot.intake.on());
+gp1.circle().onFalse(robot.intake.off());
+
+```
+
+
+
+
+### Sticks and triggers
+
+Are exposed as `RangeTrigger`s instead of plain `Trigger`s, since they report an analog value rather than a simple boolean.
+Allowing you to use `RangeTrigger`s like `isOver()` or `isUnder()` etc.
+
+
+
+
+```kotlin
+gp1.rightTrigger.isOver(0.2).onTrue(robot.launcher.launch())
+```
+
+
+
+
+```java
+gp1.rightTrigger().isOver(0.2).onTrue(robot.launcher.launch());
+```
+
+
+
\ No newline at end of file
diff --git a/src/content/docs/robot/telemtry.mdx b/src/content/docs/robot/telemtry.mdx
new file mode 100644
index 0000000..78b7955
--- /dev/null
+++ b/src/content/docs/robot/telemtry.mdx
@@ -0,0 +1,114 @@
+---
+title: Telemetry
+description: Broadcasting telemetry to multiple destinations with Telemetry
+sidebar:
+ order: 1
+---
+
+import { Tabs, TabItem } from "@astrojs/starlight/components";
+
+`Telemetry` lets you send data to the Driver Station, FTC Dashboard, or anywhere else, all at once.
+You don't need to create one, just call its functions directly.
+
+By default, everything goes to the Driver Station.
+If you want it to also show up somewhere else, register another backend.
+
+## Usage
+
+### `log(key, value)` / `log(line)`
+
+Logs a data pair, or a raw string, to every registered backend.
+
+
+
+
+```kotlin
+Telemetry.log("Arm Position", arm.position)
+Telemetry.log("Ready")
+```
+
+
+
+
+```java
+Telemetry.log("Arm Position", arm.getPosition());
+Telemetry.log("Ready");
+```
+
+
+
+
+### `update()`
+
+Sends everything you've logged out to all your backends. `TelemetryHook` already calls this for you every loop, so you usually won't need to call it yourself.
+
+
+
+
+```kotlin
+Telemetry.update()
+```
+
+
+
+
+```java
+Telemetry.update();
+```
+
+
+
+
+### `addBackend(backend)`
+
+Adds another place for your telemetry to go.
+You can pass in a `TelemetryBackend`, or a regular FTC SDK `Telemetry` instance (like the one from FTC Dashboard) and it'll be wrapped for you automatically.
+
+
+
+
+```kotlin
+Telemetry.addBackend(FtcDashboard.getInstance().telemetry)
+```
+
+
+
+
+```java
+Telemetry.addBackend(FtcDashboard.getInstance().getTelemetry());
+```
+
+
+
+
+## Logging with FateWeaver
+
+[FateWeaver](https://github.com/HermesFTC/FateWeaver#usage) is a RoadRunner-log based data logging library for FTC.
+Its `FlightRecorder` implements the standard FTC SDK `Telemetry` interface, so you can register it directly as a backend using the `addBackend(SdkTelemetry)` overload
+
+
+
+
+```kotlin
+Telemetry.addBackend(FlightRecorder)
+```
+
+
+
+
+```java
+Telemetry.addBackend(FlightRecorder.INSTANCE);
+```
+
+
+
+
+Once registered, every `Telemetry.log()` call also gets written to your FateWeaver logs, which is viewable and downloadable from the robot's web dashboard using either [`http://192.168.43.1:8080/fate`](http://192.168.43.1:8080/fate) (Control Hub) or [`http://192.168.49.1:8080/fate`](http://192.168.49.1:8080/fate) (RC phone), and openable in [AdvantageScope](https://docs.advantagescope.org/overview/installation/).
+
+A couple of things to know about logging through `Telemetry` this way:
+
+- All data is logged as strings, to stay compatible with `Telemetry`.
+- Each new caption you log automatically creates its own log channel in FateWeaver.
+
+If you want typed channels, custom schemas, or other FateWeaver-specific features (`FlightRecorder.createChannel()`, `CustomStructSchema`, etc.), use the FateWeaver API directly.
+See the [FateWeaver documentation](https://github.com/HermesFTC/FateWeaver#usage) for details.
\ No newline at end of file
From 0bc3c3f8021c14b0ece95da24a7bdd38a52d1189 Mon Sep 17 00:00:00 2001
From: 28shettr <28shettr@elmbrookstudents.org>
Date: Thu, 6 Aug 2026 12:18:49 -0500
Subject: [PATCH 03/11] prettier
---
src/content/docs/robot/telemtry.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/content/docs/robot/telemtry.mdx b/src/content/docs/robot/telemtry.mdx
index 78b7955..d38876b 100644
--- a/src/content/docs/robot/telemtry.mdx
+++ b/src/content/docs/robot/telemtry.mdx
@@ -111,4 +111,4 @@ A couple of things to know about logging through `Telemetry` this way:
- Each new caption you log automatically creates its own log channel in FateWeaver.
If you want typed channels, custom schemas, or other FateWeaver-specific features (`FlightRecorder.createChannel()`, `CustomStructSchema`, etc.), use the FateWeaver API directly.
-See the [FateWeaver documentation](https://github.com/HermesFTC/FateWeaver#usage) for details.
\ No newline at end of file
+See the [FateWeaver documentation](https://github.com/HermesFTC/FateWeaver#usage) for details.
From 2b70aa539a151e5290669e8add7933ad8b099749 Mon Sep 17 00:00:00 2001
From: 28shettr <28shettr@elmbrookstudents.org>
Date: Thu, 6 Aug 2026 12:18:55 -0500
Subject: [PATCH 04/11] prettier
---
src/content/docs/robot/command-gamepad.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/content/docs/robot/command-gamepad.mdx b/src/content/docs/robot/command-gamepad.mdx
index 5f52234..85ac4cf 100644
--- a/src/content/docs/robot/command-gamepad.mdx
+++ b/src/content/docs/robot/command-gamepad.mdx
@@ -76,4 +76,4 @@ gp1.rightTrigger().isOver(0.2).onTrue(robot.launcher.launch());
```
-
\ No newline at end of file
+
From 5b3322c7f6dae9946c3a380559b88842accc0d9d Mon Sep 17 00:00:00 2001
From: 28shettr <28shettr@elmbrookstudents.org>
Date: Fri, 7 Aug 2026 14:53:13 -0500
Subject: [PATCH 05/11] fixed
---
.idea/caches/deviceStreaming.xml | 2241 -----------------
.../robot/{telemtry.mdx => telemetry.mdx} | 0
2 files changed, 2241 deletions(-)
delete mode 100644 .idea/caches/deviceStreaming.xml
rename src/content/docs/robot/{telemtry.mdx => telemetry.mdx} (100%)
diff --git a/.idea/caches/deviceStreaming.xml b/.idea/caches/deviceStreaming.xml
deleted file mode 100644
index e112b74..0000000
--- a/.idea/caches/deviceStreaming.xml
+++ /dev/null
@@ -1,2241 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/content/docs/robot/telemtry.mdx b/src/content/docs/robot/telemetry.mdx
similarity index 100%
rename from src/content/docs/robot/telemtry.mdx
rename to src/content/docs/robot/telemetry.mdx
From 74eebedf4a4c297b2f67b9d919c1529c0ea41e0d Mon Sep 17 00:00:00 2001
From: 28shettr <28shettr@elmbrookstudents.org>
Date: Fri, 7 Aug 2026 14:59:56 -0500
Subject: [PATCH 06/11] shush small fix
---
src/content/docs/hardware/actuators/feedback-servos.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/content/docs/hardware/actuators/feedback-servos.mdx b/src/content/docs/hardware/actuators/feedback-servos.mdx
index 3f7e8ee..7e119f7 100644
--- a/src/content/docs/hardware/actuators/feedback-servos.mdx
+++ b/src/content/docs/hardware/actuators/feedback-servos.mdx
@@ -32,7 +32,7 @@ val armServo = NextFeedbackServo(RobotController.expansionHub, 0, NextAnalogInpu
NextFeedbackServo armServo = new NextFeedbackServo("armServo", new NextAnalogInput("armEncoder"));
// By Lynx Module and port
-NextFeedbackServo armServo = new NextFeedbackServo(RobotController.getExpansionHub(), 0, new NextAnalogInput(RobotController.getExpansionHub(), 0));
+NextFeedbackServo armServo = new NextFeedbackServo(RobotController.controlHub(), 0, new NextAnalogInput(RobotController.controlHub(), 0));
```
From a7837856e47701df0673a8b42b2132fc5cbf1aa1 Mon Sep 17 00:00:00 2001
From: 28shettr <28shettr@elmbrookstudents.org>
Date: Fri, 7 Aug 2026 15:00:18 -0500
Subject: [PATCH 07/11] shush small fix
---
src/content/docs/hardware/actuators/feedback-servos.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/content/docs/hardware/actuators/feedback-servos.mdx b/src/content/docs/hardware/actuators/feedback-servos.mdx
index 7e119f7..32af9fb 100644
--- a/src/content/docs/hardware/actuators/feedback-servos.mdx
+++ b/src/content/docs/hardware/actuators/feedback-servos.mdx
@@ -21,7 +21,7 @@ All of these below are interchangeable with `NextFeedbackCRServo`.
val armServo = NextFeedbackServo("armServo", NextAnalogInput("armEncoder"))
// By Lynx Module and port
-val armServo = NextFeedbackServo(RobotController.expansionHub, 0, NextAnalogInput(RobotController.expansionHub, 0))
+val armServo = NextFeedbackServo(RobotController.controlHub, 0, NextAnalogInput(RobotController.controlHub, 0))
```
From 18ea5a734c352c554f2fdea142cf249d7baa5bee Mon Sep 17 00:00:00 2001
From: 28shettr <28shettr@elmbrookstudents.org>
Date: Mon, 17 Aug 2026 17:40:34 -0500
Subject: [PATCH 08/11] fixed suggestions
---
src/content/docs/robot/command-gamepad.mdx | 10 +++++-----
src/content/docs/robot/telemetry.mdx | 3 +--
2 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/src/content/docs/robot/command-gamepad.mdx b/src/content/docs/robot/command-gamepad.mdx
index 85ac4cf..802f27b 100644
--- a/src/content/docs/robot/command-gamepad.mdx
+++ b/src/content/docs/robot/command-gamepad.mdx
@@ -16,14 +16,14 @@ This lets you map controller inputs directly to commands using the WPILib-style
```kotlin
-val gp1 = CommandGamepad(gamepad = gamepad1)
+val gp1 = CommandGamepad(gamepad1)
```
```java
-CommandGamepad gp1 = new CommandGamepad(Trigger.getDefaultEventLoop(), gamepad1);
+CommandGamepad gp1 = new CommandGamepad(gamepad1);
```
@@ -56,10 +56,10 @@ gp1.circle().onFalse(robot.intake.off());
-### Sticks and triggers
+### Sticks and Triggers
-Are exposed as `RangeTrigger`s instead of plain `Trigger`s, since they report an analog value rather than a simple boolean.
-Allowing you to use `RangeTrigger`s like `isOver()` or `isUnder()` etc.
+They are exposed as `RangeTrigger`s instead of plain `Trigger`s, since they report an analog value rather than a simple boolean, letting you
+use `RangeTrigger` methods like `isOver()` or `isUnder()`.
diff --git a/src/content/docs/robot/telemetry.mdx b/src/content/docs/robot/telemetry.mdx
index d38876b..378a81e 100644
--- a/src/content/docs/robot/telemetry.mdx
+++ b/src/content/docs/robot/telemetry.mdx
@@ -8,8 +8,7 @@ sidebar:
import { Tabs, TabItem } from "@astrojs/starlight/components";
`Telemetry` lets you send data to the Driver Station, FTC Dashboard, or anywhere else, all at once.
-You don't need to create one, just call its functions directly.
-
+The `Telemetry` functions are all static; you don't need to create your own telemetry instances.
By default, everything goes to the Driver Station.
If you want it to also show up somewhere else, register another backend.
From 6623e4ba0a5c3f8c6256535e00ac332a2957818d Mon Sep 17 00:00:00 2001
From: 28shettr <28shettr@elmbrookstudents.org>
Date: Fri, 21 Aug 2026 17:47:42 -0500
Subject: [PATCH 09/11] fix wording
---
src/content/docs/robot/command-gamepad.mdx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/content/docs/robot/command-gamepad.mdx b/src/content/docs/robot/command-gamepad.mdx
index 802f27b..1ab5e89 100644
--- a/src/content/docs/robot/command-gamepad.mdx
+++ b/src/content/docs/robot/command-gamepad.mdx
@@ -58,8 +58,8 @@ gp1.circle().onFalse(robot.intake.off());
### Sticks and Triggers
-They are exposed as `RangeTrigger`s instead of plain `Trigger`s, since they report an analog value rather than a simple boolean, letting you
-use `RangeTrigger` methods like `isOver()` or `isUnder()`.
+Joysticks and gamepad triggers are exposed as `RangeTrigger`s instead of regular `Trigger`s,
+since they report an analog value rather than a boolean value, letting you
From ff67b8926c8e7f406f16477a96687b30202c75d0 Mon Sep 17 00:00:00 2001
From: 28shettr <28shettr@elmbrookstudents.org>
Date: Fri, 21 Aug 2026 17:58:23 -0500
Subject: [PATCH 10/11] Restore deviceStreaming.xml
---
.idea/caches/deviceStreaming.xml | 2204 ++++++++++++++++++++++++++++++
1 file changed, 2204 insertions(+)
create mode 100644 .idea/caches/deviceStreaming.xml
diff --git a/.idea/caches/deviceStreaming.xml b/.idea/caches/deviceStreaming.xml
new file mode 100644
index 0000000..963f4e3
--- /dev/null
+++ b/.idea/caches/deviceStreaming.xml
@@ -0,0 +1,2204 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
From b0fa4e090554191099684725abac40dd694e0017 Mon Sep 17 00:00:00 2001
From: 28shettr <28shettr@elmbrookstudents.org>
Date: Fri, 21 Aug 2026 18:29:29 -0500
Subject: [PATCH 11/11] ordering
---
src/content/docs/robot/commands.mdx | 2 +-
src/content/docs/robot/telemetry.mdx | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/content/docs/robot/commands.mdx b/src/content/docs/robot/commands.mdx
index 61696d9..160b430 100644
--- a/src/content/docs/robot/commands.mdx
+++ b/src/content/docs/robot/commands.mdx
@@ -2,7 +2,7 @@
title: Commands
description: How NextFTC schedules commands, and where to find the full command API.
sidebar:
- order: 1
+ order: 5
---
import { Tabs, TabItem } from "@astrojs/starlight/components";
diff --git a/src/content/docs/robot/telemetry.mdx b/src/content/docs/robot/telemetry.mdx
index 378a81e..ae66337 100644
--- a/src/content/docs/robot/telemetry.mdx
+++ b/src/content/docs/robot/telemetry.mdx
@@ -2,7 +2,7 @@
title: Telemetry
description: Broadcasting telemetry to multiple destinations with Telemetry
sidebar:
- order: 1
+ order: 6
---
import { Tabs, TabItem } from "@astrojs/starlight/components";