FRC Team 1710 | 2025 Build Thread | Open Alliance

image
Welcome back to the Team 1710 Open Alliance build thread!

Team 1710 plans on re-joining the Open Alliance for the 2025 season! We had a blast doing this last year, and felt it helped our team a whole lot!

Our Goals for the 2025 Open Alliance Build Thread

Last year, I feel like this build thread helped keep the team on track. We learned from the rest of the community, and hopefully taught somebody something. You can find that thread here: FRC Team 1710 | 2024 Build Thread | Open Alliance

This year, we are hoping to accomplish similar goals. We want to go a little more in depth with our documentation and decision making processes, share more successes and failures throughout the season, and continue to learn as much as we can from the great community at hand!

We are also hoping to document our pre-season project in depth using this thread. Hopefully that project will help our students learn and prepare for the long season ahead. It should also provide some good practice for those on the team that will be contributing to this thread.

Starting Early

Hopefully we aren’t too premature in getting this thread started. I haven’t seen any official OA team registration come out yet, so there could be some differences from last year. If any of those future differences affect this thread, I’ll be sure to update appropriately.


Website
Instagram
YouTube
TikTok
Facebook
Twitter / X


CAD

Code

28 Likes

Really enjoyed your thread last year, Good Luck!

8 Likes

Pre-Season Project

The first meeting is nearly here! Before the pre-season starts, the ProBuDe (Programming, Build, and Design) leaders decided to embark on a relatively large endeavor for the meetings prior to kickoff: updating our outreach bot! It was built as a swerve drive testbed back in 2021, and while it still runs well enough for outreach purposes, it’s in need of considerable maintenance. So, we’ve decided to overhaul its design, take it apart, and rebuild it in a project we’ve named “LOKI.”

 

|653.3154362416108x526.1918980259562

 

Inspired by 2910’s Rapid React robot, “THOR,” it features an over-the-bumper intake along with a shooter, allowing us to reuse cargo from 2022 for increased interactivity at outreach events. To save resources, we’ve kept the frame the same size as the old outreach robot (23”x23”) and plan to use our old NEOs for all mechanisms.

 

 

Our goal with this project is to provide a “build-season” type experience for newer members, helping them get accustomed to the deadlines and time constraints of the season. Along with this, we are able to use this project as practice for our machining members, particularly those working with the CNC and lathe.

One issue we face every year is time, especially during pre-season. The team only meets three times per week during this period, and all of our meetings combined amount to just over a week’s worth of build-season hours. To address this, the Design subteam decided to complete all aspects of the CAD model before the first official meeting in order to get a jumpstart and give the Build subteam ample time to machine the robot parts.

Additionally, we have chosen to delay completing some less crucial mechanisms, such as the over-the-bumper intake and shooter hood, for a future time. This will ensure that we can make the robot mostly functional without putting too much pressure on the team during the pre-season.

 

Subsystem Overview

|670.5671641791043x408.5793871866295

Drivetrain

  • 23” x 23” Frame
  • MK2 Swerve Modules w/ 4” Billet Wheels
  • Top-Mounted Electrical Components

 
 

Intake

  • Over-the-Bumper
  • Utilizes 4” Mecanum Wheel to Center Cargo
  • Driven by Chain and Sprockets
  • Powered by 2 NEOs w/ MAXPlanetary Gearboxes

 
 

|632.1038961038961x427

Indexer

  • 2” Thrifty Squish Wheels
  • HTD Belt Conveyor System
  • 1 Beam Break for Sensing Cargo
  • Powered by a NEO

Shooter

  • 4” Colson Flywheels
  • Rack and Pinion Adjustable Hood
  • Powered by 2 NEOs

 

Feel free to ask questions or make suggestions! The CAD model is linked below:

18 Likes

Cow Town Throwdown

Team 1710 had the pleasure of competing at Cowtown Throwdown this past weekend!

We love participating in this competition every year as it offers our leaders a chance to practice competition task delegation, gives returning members an opportunity to step into new roles, and provides new members with a glimpse into the competition season. It also allows us to open the drive team to any interested students. This year, we had a new driver, mechanic, coach, and human player for every qualification match. Unfortunately, nearly 20 members were unable to attend either day due to conflicts with marching band events, including several key members from the pit crew and last year’s drive team.

At the end of Qualifications we were ranked 27th with a 4-3-1 record. We were honored to be selected as the second pick of Alliance 6 and we went undefeated until finals. Huge shout out to our alliance captain, Team 5013 (Trobots), Team 1986 (Team Titanium), and Team 9551 (Tiger) — we had a ton of fun partnering with all of you in the playoffs for the first time in Team 1710’s history!

Here is a short recap video from our media team:

 

Failures and Fixes

Frame Bending

  • Bent 1”x1” steel intake tubing during the last qualification match

    • Already slightly bent prior to the match
    • Replaced after match (Relatively easy fix- just four bolts)
  • Bent 1”x1” steel intake tubing and rear 2”x1” swerve tubing during elimination matches

    • Not critical (didn’t replace)
    • Hopefully the new bumper rules will help prevent this type of damage in the future

 

Elevator Issues

  • Center elevator rope frayed

    • Issue we’ve faced all season
    • Replaced before elimination matches
  • Left-side elevator rope snapped before alliance selection

    • Issue we’ve faced all season
    • Couldn’t replace in time for elimination matches
      • Elevator wasn’t functional for the rest of the competition
  • Polycarbonate hard stop snapped

    • Not critical (didn’t replace)

 

Intake Dislocation

  • Left side of the intake dislocated from its original position
    • Sheared the bolt that connects the 1”x1” intake bar to the frame

      • Removed the bolt, wasn’t necessary
      • Added more rivets to secure the intake to the frame
    • Delrin block locking system failed

      • Forced it back into position
16 Likes

Preseason Programming

New Member Training

This year, one of the biggest things I wanted to improve about the Programming Subteam was how we do new member training. In past years it’s mostly been a brief overview of the command-based framework followed by a few weeks of PID tuning, and it usually resulted in the new programmers spending the rest of the year programming LEDs with an Arduino that wouldn’t make it on the robot until late competition season. As a former LED programmer myself, I wanted to make sure my new members would not only get to see their code run on the final robot, but that they’d also gain enough experience working in actual robot code during the preseason that they would be able to help write code for testing prototypes and running subsystems.

To do this, I’ve created some projects loosely based on both the Offseason Practice Projects I made over the summer as well as the lesson plans from this presentation at the mentor conference (thank you so much for these slides). Here’s a brief overview:

Lesson 1 - Spin the Motor
  • Goal: use TimedRobot framework to spin a NEO via controller input

  • Introduces VSCode, vendor dependencies, and the REV API

Lesson 2 - Toggle the Solenoid
  • Goal: create a Subsystem and reference it in the TimedRobot framework to actuate a pneumatic cylinder via controller input

  • Introduces Subsystems

Lesson 3 - Intake the Note
  • Goal: create an IntakeSubsystem, reference it in an IntakeCommand, and bind that to a button in the RobotContainer to control the intake on last year’s robot

  • Introduces Commands, the RobotContainer, and DigitalInputs (beam breaks)

Lesson 4 - Tune the Motor
  • Goal: use a PID controller to control the velocity and position of a NEO

  • Introduces PID controllers and tuning

Lesson 5 - Shoot the Note
  • Goal: write code for the wrist and shooter on last year’s robot and combine it with the code written in Lesson 3 to fire a note via controller input

  • Introduces InstantCommands and JoystickButtons

Final Lesson - Run the Outreach Bot
  • Goal: program all subsystems for the new-and-improved outreach bot

  • Tests knowledge gained throughout the preseason

Bonus Lesson A - Write the Auto
  • Goal: create a short autonomous routine for last year’s robot

  • Introduces PathPlanner, NamedCommands, and Triggers

Bonus Lesson B - Calibrate the Cameras
  • Goal: calibrate an AprilTag camera and a note detection camera on last year’s robot

  • Introduces PhotonVision and color thresholding

That final lesson will also be a “programming final” that I’ll have everyone do to gauge how comfortable everyone is with Command Based before Build Season.

I want to give my new programmers a huge shoutout: they’ve been breezing through these lessons so far. Not only are they on track to help prototype write subsystems on next year’s robot, but they’ll probably be able to start specializing in vision or drivetrain programming by the start of build season. I’m greatly impressed by their hard work over these last few weeks, and I think it’s safe to say they have an LED-free season ahead of them.

AdvantageKit Testing

This year, we’re planning on updating our swerve drive code by pivoting towards AdvantageKit for its suite of unique features such as log replay. More specifically, we’ve decided to use the AdvantageKit Swerve Base template created by Hemlock’s Gray Matter. One of our new mentors this year has helped us establish a connection with their programming team and they’ve been immensely helpful with the setup process. We were able to test-drive the template last week and we’re currently working on getting a fully-tuned and SysId’d drivetrain up and running.

Hemlock also recommended using a Limelight to help with the tuning process (as their template uses Limelight by default), so we’ve been able to borrow a Limelight 3 from the Broncobots (Team 1987). We started working with it last Tuesday, figured out how to turn the turbolasers off last Thursday (shoutout to @RavenRain44 for putting his retinas on the line), and got pose estimation figured out by the end of last Friday. While it’s nice having a Limelight as frame of reference while we setup this new swerve template, we’ll probably stick with PhotonVision for the season as we’re not huge fans of Limelight’s price point and already have some institutional knowledge with the PhotonVision ecosystem.


Average Limelight tuning experience

18 Likes

Final Pre-Season Update

Apologies for the delayed post—pre-season has kept us incredibly busy, and we all needed a bit of a breather. Our main project this season was to complete LOKI, our upgraded outreach bot, and we’re thrilled to announce that it’s finished! Just in time for our Winter Workshop, too! Huge thanks to our dedicated members who put in the hard work and extra hours before meetings to make this happen!


 

Speaking of Winter Workshop, here’s our recap created by our amazing Media Team!:

 

ALPHA Chassis

Additionally, we embarked on the task of disassembling our 2024 competition robot, ADONIS. Typically, we would strip it down for parts, but this year we’ve decided to preserve the chassis for the start of the build season. As our programmers are currently testing the new AdvantageKit Swerve Base template developed by Hemlock’s Gray Matter, this chassis will serve as a valuable testbed for their software. Most importantly, it will provide our programming subteam with a significant head start once the game is released.

video-20241227-175544-2c003fc7
(Apologies for the blurry video)

For the past few years, our robots have been on the heavier side, weighing between 120-125 pounds without bumpers and the battery. This season, our goal is to be lightweight and quick, which is why we’ve decided to change our gear ratio to L3s. Currently, the drive motors are Krakens and the steer motors are Falcons. We’re awaiting the arrival of our new Krakens at the start of the build season, where we’ll swap them out for the final robot.

Link to ALPHA Chassis CAD:

 

We’re so excited for REEFSCAPE and the season ahead of us! Good luck to all teams! We’re excited to be attending the Central Missouri Regional for the first time, along with the Greater Kansas City Regional!

5 Likes

I’ve started working with a team this year that uses Fusion for CAD. Having never used the program for FRC before, do y’all have any tips and tricks for designing robots in Fusion?

2 Likes

We’ve used Fusion 360 for the past 4 years! The main reason we use it is due to our school’s engineering academy, which utilizes Autodesk software throughout the 4-year program. It also has the advantage of having built-in CAMing software, which we utilize for our CNC. Overall, it’s a pretty nice software, since it’s connected to the cloud. I have a feeling that we’ll be switching to Onshape within the next few years, ideally when the school decides to switch as well. In terms of tips and tricks, it’s fairly similar to other CAD softwares, and the layout is quite user-friendly. We make sure to have a COTS library that is frequently updated with new parts, since there aren’t really any FRC related featurescripts. And most importantly, keeping things organized in folders and sub-folders. Our Design Team uses SolidProfessor for training, which I would highly recommend. It has many lessons over the various aspects of the software, which is quite useful for first-time users. Personally, I’ve learned a ton simply by messing around with it. I’d be happy to dive in deeper and help you guys out if you have more specific questions.

2 Likes

Kickoff

Every year we host a kickoff banquet for sponsors, alumni, and families of the team. After the banquet, our leadership team gives a presentation on what we did during the preseason and then we watch the livestream.

Usually we’d head to our build space right after the livestream, but because of an impending winter storm, we had to modify our usual post-kickoff analysis and did a virtual post-kickoff meeting instead. We started in breakout groups of 6-7 students and spent 2 hours working our way through kickoff worksheets inspired by worksheets used by 4481, 1678, 6328, and 2910 (shoutout to @JoshuaJ1710 for compiling these!). Afterwards, we met back up in a single call for a group discussion on strategy and robot priorities. Here’s the priority lists we decided upon:

Strategy Priorities:

  1. Coral Scoring up to L4
  2. Knock Algae off of Reef
  3. Climb on Deep Cage
  4. Score Algae in Processor
  5. Control Algae off of Reef
  6. Score Algae in Net

Top Robot Priorities:

  1. Moving Precisely
  2. Control Coral
  3. Score Coral
  4. High Maneuverability/Acceleration
  5. Pick up Coral Accurately from the Coral Station

Additional Robot Priorities:

  • Lower CG?
  • Control Algae
  • Score Algae
  • Good Camera Visibility
  • Robust Robot

Right now, we’re working on some initial robot designs based on these priority lists. Here’s some of our super rough drafts:

We’ll post (hopefully) more refined concepts tomorrow, and we’ll share our plans for the early build season in the next few days.

10 Likes

Are you planning on simply ‘bumping’ the algae off the reef with the same arm you use for coral, or relying on other teams to remove it?

1 Like

It depends on our design. We at least want to remove the algae off the reef on our own. Whether the arm can control that algae is still up for discussion.

1 Like

Strategy Priority Breakdown

To clarify the ranking we made yesterday, here’s an explanation for each of our strategy priorites:

1. Coral Scoring up to L4
Based on our analysis of the game, we feel that placing coral will be the primary way to score this year. You.get extra points for it in auto, it’s got 2 RP tied to it, and unlike algae there’s a virtually unlimited supply of coral available to score. We also believe it’s crucial to be able to score at every height level, and especially L4 — after all, placing coral at L4 gets you the most bonus points for scoring in auto (+2) and you don’t have to get rid of algae to do so.

2. Knock Algae off of Reef
We’ve placed this ability second because it’s required to score at L3 (making it easier to rack up points) and to get the Coral RP (at least before the co-op bonus). Note that this does not include controlling the algae as we knock it off of the branches — we feel that that while having that ability is useful, prioritizing the testing and design of other scoring methods (such as climbing the deep cage) will get us more points during matches.

3. Climb on Deep Cage
We thing that the deep cage is pretty similar to the Trap from last year in that the ability to score it will separate the good robots from the #1 seeds. It’s worth almost twice as much as the next-highest method of scoring and nearly guarantees an RP, allowing you to control your own destiny during qualification matches. A 12-point swing could easily be the deciding factor in a match as well, and with matches granting 3 RP this year making sure you can win consistently is more important than it’s ever been.

4. Score Algae in Processor
We’ve got algae-related scoring methods ranked lower in our priorities due to the limited amount of algae on the field (resulting in less total points to be scored). We have processor scoring above net scoring due to the Coopertition bonus you get from scoring in the processor.

5. Control Algae off of Reef
This is a nice feature to have and it’ll probably reduce cycle times, but as mentioned before it’s not as useful as other scoring methods. Still, being able to pluck algae of the reef means that the algae will likely be on an elevator-type subsystem, allowing you to get it closer to the net before you shoot it (reducing bounce-outs) without the need for a handoff mechanism.

6. Score Algae in Net
We have this ranked last as it nets the least amount of points with the highest degree of risk. If you miss a shot into the net or it bounces out, you could be giving the other alliance an opportunity to put it in their own net, locking that algae out of play (and points associated with it) for the rest of the match.

7 Likes

Snow Days

Sorry it’s been a while — the big snowstorm that cut our in-person kickoff short decided to dump 12 inches of snow on us and canceled all school and activities for three whole days.

We were able to finally get back into school yesterday, but due to more bad weather moving in we had to make it an optional meeting. That bad weather has now canceled both school and our meeting today, and there’s a chance it could cancel our Saturday meeting as well. I said we’d share more of what early build season would look like, but that’s up in the air at the moment so I’ll just share some info about what we’ve done since the last post.

Finding an Archetype

While we were stuck at home during the snowstorm, we set out to find a general architecture for our robot. We knew we definitely wanted to be able to place L1-L4, deep climb, and handle coral off the reef, so we brainstormed a few different ideas that involved both intaking from the floor and from the source.

We also kept track of Ri3Ds as a source of inspiration. Our favorites included the Ninjineers’ claw and side-to-side arm, the Penn State donut climber, and the RustHounds’ source intake funnel and pickup mechanism. By Wednesday, we’d decided to prioritize a source intake over a floor intake for auto consistency, and we were debating between a forwards-facing claw or a side-to-side arm for coral placement. In our quest to find a good source funnel and side-to-side arm idea, we scanned literally every Ri3D reveal, CAD in 24-hour release, and Open Alliance build thread, but with no success. We finally resorted to scanning every CAD link in the OA directory in hopes of striking gold — and it worked.

Steal from the Best

First of all, huge thanks to 111 for posting their CAD link early. We loved their design, as it’s both complex enough to accomplish the variety of tasks we’ve prioritized and simple enough only to require a single pivot point. We liked it so much that by the end of Wednesday, we decided that it was the perfect archetype to base our own robot on.

Invent the Rest

Of course, we won’t be making a carbon copy. We’re planning on shrinking the frame to 28” square, changing the algae knocker into something closer to an algae manipulator (for grabbing algae off the reef, scoring it in the processor, and possibly in the net as well), and finding a way to make the source intake flaps fold down for easier climbing (and as of writing this, it seems like 111 will be doing the same). We’d also like to change the elevator to belt rigging and use the L2 swerve gear ratio for increased acceleration (we just bought L3s to increase speed :sob:). Finally, we’d like to prototype some kind of cage-guiding mechanism to allow for quick and easy climbs.


Written by @JoshuaJ1710 and @Hyperspace1710

12 Likes

Deforming Algae

So while testing some prototypes today we discovered that it is very much possible to deform algae. Here’s some pictures:




IMG_7774

We’ll post more about our prototypes soon!

13 Likes

Coral Prototype

Inspired by Team 111’s KrayonCAD design, our coral prototype was designed with two rollers to feed the coral onto the reef. The primary objective was to determine an optimal angle that could score on all levels of the reef while experimenting with different wheels for the scoring mechanism. We began testing with three 4-inch high-durometer-compliant wheels. However, we encountered challenges with inserting the coral into the mechanism consistently. To address this, we replaced the middle high-durometer wheel with a low-durometer compliant wheel. This adjustment allowed the wheel to conform more easily to the coral, significantly improving insertion, as shown below.

https://m.youtube.com/shorts/4W6nh5CrVvc

Final Prototype

Building on these results, we transitioned from the 4-inch wheels to six 2-inch compliant wheels. This change further enhanced the ease and consistency of scoring. Through these iterations, we determined that an angle of 40 degrees produces the most reliable scoring performance across all levels of the reef. Thanks for reading and let us know if you have any ideas!

14 Likes

Early Build Season Programming

This year’s game is amazing for programmers. There are AprilTags absolutely everywhere (which will hopefully make full-field localization easy), plenty of opportunities for automating scoring processes, and maybe even some fun flight trajectory math to do with algae. My programmers and I are super excited to try and automate as much of the scoring process as we can, and here’s how we plan on doing it.

Camera Placement

This year, we’re planning on having 5 cameras on our robot, which is almost double what we had last year. To help determine where to put these cameras on our robot, I made a Desmos sim that shows where the AprilTag viewing dead spots are on the field based on our cameras’ sight range.

As you can see, even with just a 3.5-meter camera range there’s practically nowhere on the field out of range of cameras. As a result, we decided to keep the swerve-mounted cameras we’ve been using on our testing chassis, albeit with one minor change.

Because we want to align our robot with the AprilTags for coral placement, we decided to have our forwards-facing cameras criss-crossing each other to make sure we can see the reef AprilTags while aligned with either the left or right branch. Right now, we’re probably going to use our high-FPS OV9281s in the front (for faster positioning data) and our high-resolution OV2311s in the back (for extra range when at the reef). As for our fifth camera, we hope to an OV9782 for AI algae detection to assist with floor pickups. It’ll probably sit just in front of our claw and in between the two criss-crossed cameras, but we might not implement that until just before champs (fingers crossed) as we aren’t planning on picking up algae off the floor until then.

Custom Branch Targeting Controller

To control the robot, we’re planning on making a custom arcade-style controller that has a button for each branch. During matches, the mech driver will use it to change which branch the robot is currently “targeting” based on callouts from the coach, and the robot will use these targeting inputs to auto-align and place coral. This way, the driver (me) won’t have to waste cycle time manually aligning with the reef, and I won’t have to assign half the buttons on my controller to alignment controls. It’ll be using these microcontrollers and these buttons, and we’ll post a link to the CAD once we test out the prototype pictured above. Behind the glass, we’ll also be using the NATO phonetic alphabet for branch callouts both to prevent similar-sounding letters from being misinterpreted (namely B, C, D, E, and G) and to adhere to our Top Gun branding.

New Swerve Template

As mentioned in a previous post, this year we’ll be switching to Team 5712 - Hemlock’s Gray Matter’s custom swerve template. It combines the Phoenix 6 Swerve Template, AdvantageKit, and the PathPlanner Setpoint Generator for top-of-the-line drivetrain responsiveness and features full-robot simulation, log replay, and anti-skid software that are sure to boost our programming team’s potential. We’re extremely thankful for 5712’s help in guiding our switch to this template, and we’d like to give an extra-special thanks to @joeojazz for helping us get the template to run on RoboRIO 1.0s and for his patience in answering all our setup questions!

We took our alpha chassis home over the winter to practice swerve calibration and SysID tuning with the new framework, and we’re now ready to use it this season. We’re currently working on implementing drivetrain alignment via AprilTags, setting up our full-field localization system, and pre-writing the different subsystems we plan to have on our robot. Once we get a drivetrain with a few subsystems, I’m planning on testing if the new anti-skid software can be adjusted based on the height of the elevator to prevent tipping.

18 Likes

Robot Compatibility Program

This pre-season I’ve been working on a program to help with strategizing. The program takes data from The Blue Alliance, Statbotics, and Team 1710’s scouting data and determines compatibility between 2-3 robots. The project is in a developing stage and the compatibility scores that are output don’t yet reflect the whole truth. The project is intended to be used as an API route, but you can also use the frontend I created. The program is written in python and uses advanced clustering algorithms. The current approach calculates a theoretical maximum by summing the highest average pieces scored in auto for each team. It also calculates a realistic maximum by considering practical constraints, such as assigning one robot per starting position and not reusing teams. The compatibility score is the percentage of the theoretical maximum they’re able to achieve with the realistic maximum.

Example Graph

example graph

10 Likes

Try it out!

Here are some routes you can try:
Auto - Graph - All 2024 Events - 1710
Auto - Compare Graph - All 2024 Events - 1710 - 1730 - 1987
The different colored points represent starting position groupings and the different sizes represent how many points were scored during the auto period.
example graph

Future Plans

This build season my goals are to adapt the program to this year’s game and to improve the precision. I also plan on setting up documentation for keeping this project monitored and maintained even after I graduate.

10 Likes

Team 1710 FIRST Fund Application Now Open!

8 Likes

Do you think this will be efficient enough during a match? In 2023 we had trouble pivoting quickly when another robot scored on the node we had selected.

1 Like