Demos


Deploying the Correct Code (Kitty)

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 updated Kitty demo code is on the kitty-reborn repository, so make sure to clone the repo on your computer before the demo. You can find the kitty-reborn repo here.

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:

image.png

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

image.png


Next, open the terminal window with the button on the bottom left. Then, 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 (on the right side-bar of IntelliJ):

image.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!

Deploying Code for Blizzard

We always want to make sure that our robots are running the correct version of code during demos. We definitely don't want little kids driving the robot at max speed and shooting balls at max velocity!

The code for Blizzard is located in the rebuilt-2026 repository on GitHub, which you can find here. Be sure to clone the repository on IntelliJ on the DS before the demo if it isn't there already.

1. The demo code for Blizzard is on the blizzard-demo branch. To get there, open the terminal using this icon:

image.png

2. Then, type git checkout blizzard-demo to navigate to the demo branch:

image.png

3. Next, we want to update the branch with any changes that have been made to the code, so type in git pull into the terminal:

image.png

4. To connect to Blizzard, make sure the field radio is connected to the DS using the dongle or through ethernet. The DriverStation application should show the Communications bar as Green

5. Once this is done, open the Gradle tab on IntelliJ (the little elephant on the right side-bar):

image.png

6. Then, navigate to Tasks -> deployUtils -> deploy and double click on deploy:

image.png

 

Great! Now the correct code is deployed to Blizzard. This demo branch exists for Blizzard so it doesn't rely on AprilTags for localization, and it has a slower max speed. Wait a couple seconds for the code to deploy, and you are 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.

kittycontrol.jpg

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

Controls Layout Stash

Contains the bindings for all of the robots that we use for demos.

Controls Layout Stash

Kitty

Our 2024 robot, Kitty, was truly epic. This bot took us all the way to world champs in Houston, where we played as Captain of Alliance 6 on the Newton Division. Though this robot was decapitated at one point, it's truly a gem of a bot.

Drive it with care!

Kitty Controls

Controls Layout Stash

Beluga

Beluga, affectionately called Belly, was our 2025 robot. This robot lasted to the very end of qualification matches in the Galileo Division at world champs. Powder-coated with a slick black finish, it was certainly a machine to look at and to drive. Though at times the umbilical cord was somewhat combustible, it was quite an epic robot.

Drive it with care!

Beluga Controls

Controls Layout Stash

Blizzard

Our 2026 robot, Blizzard, was one of our best. This robot took us from our district competitions all the way to World Champs in Houston where we played in Alliance 1 and won the Hopper division. Though we often had some very last minute changes (*cough* the night before Cabarrus), it did us very well.

Drive it with care!

BlizzardControls.png