Spectrum 3847 | Build Blog 2023

Spectrum is back for our 12th build blog. Our robot this year will be named “X-Ray 2023”

2023 Spectrum Season Resources

2022 Robot Rules Overview

With many of the robot rules now evergreen, we did a presentation on the rules ahead of the kickoff to give our students a good understanding of the basic rules. This may be a good thing to have your team listen to before Saturday.

Video: https://www.youtube.com/watch?v=6d-DoTdu5wc

OnShape Training

We updated and added to our Design Training Slides. We haven’t gotten a chance to record videos for these, but the slides should be helpful.

  • D3.1 OnShape FRC Robot Organization - 2023: Slides
    • Updated our recommend process to use reference cubes (similar to 1678 and others)
    • Added Variable Library Details
  • D3.5 Part Design Process - Slides
    • It goes over the process of designing a part for our robot and what should be thought about and done in the design.
  • D3.6 FeatureScripts - Slides
    • Links and explains many of the featurescripts that FRC teams can use to speed up their CADing

System Organization

Spectrum has a relatively flat organizational structure. We don’t have any year-round captains or specifically assigned subteams, etc. During the season, we have system leads for hardware and software. We try to limit it to 5 systems, with each of these systems normally led by 1 or 2 students. Here is how the breakdown normally works.


  1. Swerve/Frame/Bumpers/Controls
  2. Game piece mechanism 1 (usually intake)
  3. Game piece mechanism 2 (was ball path in 2022)
  4. Game piece mechanism 3 (was launcher in 2022)
  5. End Game


  1. Swerve/Drive Tuning
  2. Autonomous/Path planning
  3. Vision
  4. Game Pieces Mechanisms
  5. End Game (likely other tasks)

Excited for this blog as I am every year!

1 Like

Immediately yes. One of my favorite threads every year.


Software Organization Update - 2023

One of our larger projects this fall was creating a plan to restructure our software to make it easier for more members to be involved in software development.

The main idea was to make everything a system (subsystem), so auton, pilotGamepad, operatorGamepad, vision, etc., are all considered systems in our structure. Each of the systems has its own folder, its own config class for constants, and its own commands class (and possibly a folder for full command classes). We attempted to split more things out of the default subsystem class so they can be updated and version controlled separately. An example of this is having a separate folder for trajectories/path planning outside of auton or swerve.

Some other things that have changed or been added

  • Created SpectrumLib in its own GitHub library and include it in our project using jitpack.
  • LED Animation system using the WPILib FPGA LED driver
  • Incorporating AdvantageKit
  • Spotless auto-formatting
  • Template Mechanism classes for rollers (intakes, shooters), angle mechanisms (arms), and linear mechanisms (elevators)

2023 Software Changes Notes these aren’t all fully implemented or detailed here, but this is where we were keeping notes as we went through the process of overhauling our code structure this fall.

Our Flash-2023 Repo is the code for our swerve test platform that uses the new structure. So far, it has been working well, but without a full season, we don’t know what bugs will turn up due to these changes.


3D Printed Timing Belts for Prototypes

We experimented with 3d printing 5mm HTD timing belts.


OnShape link to the belt generator we are using to make our belt models: Onshape

We need to be able to tune the geometry of the belt to allow us to print it correctly and work well with our slicer settings (details below)


  • TPU 95A: This material was too elastic and stretched too much.

  • PCTPE: This is one of the most promising materials. It’s a nylon and TPU copolymer. It’s flexible but not very elastic. Belts made with this at the correct size could slip due to stretch, but we believe there may be a way to print belts slightly undersized that will stretch to the correct size.

  • TPU-CF: TPU with chopped carbon fiber this material also worked very well.

Slicer Settings

  • This was the important part of making timing belts that worked the way we wanted.
  • The main principle is getting each layer to only be complete loops of filament. In our case, this is 4 total perimeters of 0.6mm thick extrusions. You can adjust the model to help get the correct setup.
  • The top and bottom solid layers are turned off.
  • Avoid Crossing perimeters is turned on to limit stringing
  • The seam position is set to random to avoid a misshapen tooth where the seam may be.
  • This does leave a small hole in the belt, but that didn’t seem to cause a problem with our tests.

Results and Recommendations

  • We printed two belts for our 2022 launcher hood and were able to launch balls well with the printed belts. They do feel looser than the stock-reinforced belts.
  • At the current stage, we are confident we could print a belt for a prototype or test, but we wouldn’t want to use a printed belt on a competition robot in any critical area.
  • The next step is to alter the geometry so that we can easily print a belt with a slightly smaller diameter than a standard belt but with a similar tooth size so that we can account for the stretch built into the printed materials.

Allen, do you think printing belts is worth it over investing in a few hundred dollars in belts from v-belt guys in 5 and 10 tooth increments? If so, I’d love to hear your reasoning.

We did that this fall after @Boomie did something similar.

This is what we ordered and the totals:

Bonus belt picture:


We have found that some our designs need odd sized belts that we don’t want to stock. Stocking belts at 5 tooth increments is probably reasonable, stocking at 1 or 2 becomes less reasonable a lot faster.


Interesting, I’ve never felt the need for finer granularity in belt choice beyond a 5 tooth increment.


Fall Elevator Design

We also designed an elevator during the fall, like many many teams. Ours wasn’t designed specifically to be a model of how we could build a competition elevator in 2023 if needed. It was designed to experiment with a few different elevator ideas and be a useful training tool for robot assembly.

Onshape Link

This elevator can either be run in a cascade setup or, as modeled, set up so the first stage motor and the carriage are decoupled and can be controlled independently. This could let you have a starting position with the carriage at the top of the robot or allow for specific over-the-back designs. You can also gear each stage for different speeds/power. You could have a very fast carriage used for most of the scoring and a slower 1st stage used for climbing and some scoring.

The carriage is raised and lowered by a belt running from the bottom to the top of the 1st stage that isn’t modeled in the CAD and powered by a motor on the carriage. This design took some inspiration from 1114-2019 with the sprocket and chain on the front side of the elevator. This design is also inspired by 971-2019’s thin polycarb cable carrier method.



Priority List

We completed our initial priority list of tasks for the 2023 game.

Cones from the shelf or the floor.

From what we have seen, we are currently a lot lower ground pick of cones than many other teams. Here are a few reasons that we discussed today.

  1. The cones can’t easily roll much further than the wall when dropped onto the floor from the loading stations, so you don’t have much of a cycle distance advantage over taking it off of the shelf.
  2. Intaking the cones from the various orientations and positions against the walls will be very difficult. We don’t believe it will be faster than loading from the known positions on the shelf, especially with the possibility of vision-guided aiming at the loading station.
  3. The Human Player shelf is just a bit higher than the middle cone node, so you don’t need to raise or lower it to be able to place it on the midsection. And for the top, you only have to raise it about a foot and extend it about a foot more than the mid. Much easier than also needing to reach the floor with your cone mechanism.
  4. You can have a specific cube(ball) intake on the ground level and don’t have to potentially compromise your robot’s ability to intake cubes(balls) also to pick up cones rapidly.
  5. 15 scoring locations out of 27 can be cubes which is more than half.
  6. Each alliance has 27 cones, so if you drop one, you can always return and get another to fill the 12 required spots.
  7. Any dropped cones while attempting to score on a mid or top row will land in the bottom row. If you are strategic about when you score the bottom row, your mistakes may still count for points.

Potential Alliances composition at Districts and Worlds

Cube Intake and Launching Prototype


Robot Inspiration

  • 33 in 2012 - Stinger and other 2012 team’s bridge balance aids
  • 1678 in 2019 - Double robot lift for the end game (wouldn’t need to climb)
  • 148 - 2011 - 4 Bar Arm - Arms are potentially useful in this game
  • 1684 - 2019 - Separate intake from elevator scoring mechanism. Doing this for the cubes(balls) will give you a wider intake for picking up the cubes(balls) from the floor.
  • Tilted/Angled Elevators from 2018 - 2056, 1731, and a few other teams had slightly tilted elevators that let them reach out of the frame while extending up.

Game Comparisons

  • Logomotion - 2011 - tic tac toe near side
    • Driver training will be similar.
  • Rebound Rumble - 2012 - End Game
    • Balancing on the bridge
  • Steamworks - 2017 - Cycles and non-symmetric field
    • Autonomous and cycles will be different depending on which alliance you are.
  • DDSPBTBC - 2019 - Multi-Game Piece
    • Cubes roll like cargo, and cones behave like hatch panels.
  • Power Play (FTC) - 2022
    • Picking up Cones

Is a stinger type device legal this year? If you push a stinger down to balance the ramp, when you transpose your robot onto a flat floor you would be violating bumper rules.

1 Like

You are correct we have that on our list of things to Q&A and haven’t done any design work or put much thought into it yet.

To be more precise we are going to Q&A that if extensions that deploy below the robot that can’t support the weight of the robot will still be legal. For example, a robot with suspension could have bumpers that when measured from the bottom of the wheels when lifted off the ground are more than 7.5in but when placed on flat ground they collapse and bring the bumpers within the zone. A relatively weak stinger type mechanism could be deployed in a similar manner and not break the bumper zone rules.


Day 2

We began making some of our field elements and talking more about possible designs.

Robot Testing

What happens when a 2022 robot runs into a cube? Watch till the end

Squishing the cone test

Scoring the cube with Infrared

8515 can score the cube as well

Example Sketch

Robot Inspiration

1986 - 2012: Twin Tucking Tabs and Stingers
6800 - 2022: Arm on an elevator
1619 - 2018: Full width cube intake


The robot popped before the cube did!

I’m curious have you tried running over an upright cone on carpet? In a brief test yesterday pushing a robot into an upright cone on carpet the bottom of the cone really dug in and put up a lot of resistance. It seemed like getting beached on an upright cone wasn’t out of the realm of possibility.

We tried this and didn’t have any issues, we even tried driving into a sideways cone from all angles and didn’t encounter any problems whatsoever, just pushed the cone around (using swerve mk4i, 1.5" bumper height)


Is it just me or is the video for 8515 not working? it looks to just be an image for me.



Day 3: Cone Intake, robot sketch, and game manual notes

Pinch Roller Cone Intake

One of our students devised an elegant solution for a game object mechanism that deals with both balls and cones. The circles are tubes, and it intakes cones from the top. Here is a very early prototype:

Elevator + Slider

This is one of our favorite sketches of a robot that can reach the top cone-scoring location and do most of the top items on our priority list.

  • The Slanted Elevator allows you to reach further as you raise the carriage.
  • The slider lets you extend towards the mid and top rows.
  • We use the length of the cone to reduce the extension needed to reach the top cone locations.
  • The cone pinch intake doubles as a ball intake
  • A flywheel/roller would let us launch balls to score them quickly in auton.

New things in the manual

  • District points for playoffs are official, according to the manual.
    • The 5th/6th and 7th/8th placed alliances don’t receive any Advancement Points
    • The points for each team are awarded based on the percentage of your alliance’s match wins that your team played in. So for an alliance without a backup robot, everyone gets 100% of the ALLIANCE Advancement Points.
    • If a backup robot were to play 1 of 4 match wins for the alliance, they would receive 25% of the Advancement Points, and the team they replaced for that match would receive 75% of the Advancement Points.
  • Playoff tiebreakers are only Tech Fouls and not all fouls
    • This is a good improvement.
  • New Champs Division Names
    • We believe the Milstein division is honoring César Milstein, and the Johnson division is honoring Katherine Johnson, but we haven’t seen an announcement yet.
  • R304 Blue Box
    • It’s now explicitly written that “running a 3D printer or other automated manufacturing processes overnight producing ROBOT parts” is against the rules.

GDC looking at this in dismay. Friendship ended with cube, sphere-with-seams new best friend.

I love the simplicity of the intake concept! Really reminds me of some of the 2019 intakes that had a hatch mech mounted right above the cargo mech.


I’m having a bit of a rough time wrapping my head around this one, so just to clarify: this rule is specific to tournaments, but not during regular build season? Or does this apply to build season/outside of tournament dates?