Demos

Deploying the Correct Code

It's important to make sure the correct code is deployed to the robot before demos to ensure there are no unwanted bugs (secret features) that could jeopardize the quality of the demo. This page will guide you through selecting and deploying the correct branch.

The team keeps the working and tested code on the main branch, so you first need to navigate to this branch. Do this by opening the terminal by hitting this icon:

Screenshot 2025-06-12 at 12.43.07 PM.png

Then, type in git checkout main to navigate to the main branch:

image.png

Next, type in git pull to update the branch with any changes that may have been made:

image.png

Next, make sure you're connected to the robot's WiFi. It should show up as 3506_[robot name] or something similar. Once this is done, hit the Gradle tab here:

Screenshot 2025-06-12 at 12.51.06 PM.png

Then navigate to deployUtilsdeploy and double click deploy:

image.png

Great! Your code is now being deployed to the robot. Wait a couple of seconds, and you should be good to go!

Checking the Controls

Overview

During demos, it's generally pretty important to know what buttons make your robot move. Sometimes, these controls will not be readily available to you in the form of a graphic or a veteran. This page will guide you through how to figure out your controls so that you can successfully pull off a demo.

Guide

Begin by going to the RobotContainer.java file: 

image.png

Then scroll to the configureBindings() method:

image.png

Within this method, you can scroll to the controls. They should be organized by primary and secondary controllers:

image.png

Let's go over how to read the controls.

primaryXboxController refers to the- uh... I'm sure you can guess.

gigaStation refers to the secondary's button board.

onTrue means that you have to click the target button.

whileTrue means that you have to hold the target button.

The Xbox controller buttons are fairly obvious, and the gigaStation buttons are numbered.

The commands that are triggered by the buttons are also named fairly obviously. For example, coralManipulator.transitionTo(CoralManipulatorState.GROUND_INTAKE) likely means that hitting the button linked to that command will transition the coral manipulator to the ground intake position.

Conclusion

With this in mind, you should now be able to successfully find and use controls. Happy demoing!!!

Using the Driver Station

Being able to operate the driver station (DS) is necessary to operate the robot. This will guide you through the things you need to know when using the DS at demos.

image.png

This is the operation tab. Selecting different modes on the menu at 1 will allow you to switch between them. At demos, however, you will likely only be on the TeleOperated mode for safety reasons. The only other item you need to know on this menu is 2, which allows you to Enable and Disable it whenever necessary.

image.png

This is the devices tab. Different controllers (primary and secondary/gigastation) require different ports. You can adjust the different ports by holding a device and dragging it to the correct port. You can check what the correct port is in the code as follows:

1. First, go to the Constants.java file in IntelliJ:

image.png

2. Then scroll to the point where the ports are set for the controllers:

image.png

Now, you can drag the controllers to the correct port in the devices tab based on what you see in the Constants.java file. Happy demoing!

How to Robot Demo (with Kitty)

What to bring to a Robot Demo

Once you get to the venue...

Setting Up the Robot

Driving the Robot

The most important thing when driving the robot is, you guessed it, SAFETY! Be incredibly careful while driving near people, take it slow, and if you do not have any driving experience, understand that the robot is a 125 pound killing machine in the wrong hands.

To enable the robot (allows the robot to be controlled), click the "Enable" box in the FRC Driver Station application. A successfully enabled robot should have the Robot Signal Light (RSL) repeatedly blink.

To disable the robot, (disables all controls on robot so it won't move), press the "Enter" key on the keyboard of the Driver Station. Should anything go wrong with the robot that could pose a safety issue, disable immediately. Also disable if any people want to look at the robot closer.

image.png

Secondary controls are labelled using plate on top of the ten buttons.

  1. Zeroing the robot - "Zeroing" defines which direction the robot considers to be forward.
    1. Turn the robot such that the Shooter is facing forward
    2. Push the ≡ Button on your controller.
  2. Shooting for speaker (doesn't have to be at speaker, can just be used for a long shot.)
    1. LB on Primary to deploy intake
    2. Hold RB on Primary to spin intake rollers
    3. Drive over note or feed note while holding RB (If limelight is connected, should flash)
    4. Handoff occurs automatically
    5. LT to lock on to speaker and adjust pivot position
    6. ~1 Second later, RT on Primary to fire
  3. Amping
    1. LB on Primary to deploy intake
    2. Hold RB on Primary to spin intake rollers
    3. Drive over note or feed note while holding RB (If limelight is connected, should flash)
    4. Handoff occurs automatically
    5. Hit A to raise elevator and angle shooter.
    6. RT on primary to amp.
    7. Double click X ~1 second later to return to starting position.
  4. Shuttling
    1. LB on Primary to deploy intake
    2. Hold RB on Primary to spin intake rollers
    3. Drive over note or feed note while holding RB (If limelight is connected, should flash)
    4. Handoff occurs automatically
    5. Hold Y to aim at shuttle target and adjust pivot position
    6. ~1 Second later, RT on Primary to fire

Some Talking Points

Common Issues