> For the complete documentation index, see [llms.txt](https://yagsl.yassrobotics.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://yagsl.yassrobotics.com/tutorial/03-generate-your-configuration.md).

# Generate your configuration

Since 2026, the supported way to configure YAGSL is [config.yagsl.com](https://config.yagsl.com), a web app that builds your configuration files from a guided form instead of you hand-writing JSON.

{% hint style="info" %}
Hand-editing the JSON files is still possible and fully supported — see the [JSON Schema Reference](/reference/json-schema.md) if you need to script config generation or tweak a value the generator doesn't expose. Most teams should use the generator, though: it validates your inputs and always produces a schema-correct config.
{% endhint %}

## Fill in the form

The generator is organized into six tabs — work through them using the information you collected in [step 1](/tutorial/01-gather-your-robot-information.md):

1. **Gyro** — select your gyroscope type and connection (CAN, SPI, etc.), its ID/CAN bus, which axis reports yaw, and whether it needs to be inverted.
2. **Front Left**, **Front Right**, **Back Left**, **Back Right** (one tab each) — for every module, set the drive motor type/ID, angle motor type/ID, absolute encoder type/ID, any needed inversions, and the module's location relative to the robot center.
3. **Properties** — shared physical properties (gearing defaults, current limits) and starting PIDF gains for the drive and angle motors.

You can leave absolute encoder offsets and final PIDF gains at their defaults for now — you'll measure and tune those in the next two steps. The important thing at this stage is getting hardware types, IDs, and module locations correct.

## Download and unzip

When you're done, download the generated ZIP and unzip it into your project's `src/main/deploy` directory so the layout looks like this:

```
src/main/deploy
└── swerve
    └── base
        ├── swervedrive.json
        └── modules
            ├── frontleft.json
            ├── frontright.json
            ├── backleft.json
            ├── backright.json
            ├── physicalproperties.json
            └── pidfproperties.json
```

{% hint style="success" %}
If you already have a config directory from a previous season or a different robot, you can also upload it back into the generator to review or edit it, instead of starting from scratch.
{% endhint %}

Commit these files to your project's version control along with your code — they're part of your robot program, not a build artifact.

Next: [verify and calibrate your hardware](/tutorial/04-verify-and-calibrate-hardware.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://yagsl.yassrobotics.com/tutorial/03-generate-your-configuration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
