2491 NoMythic Build Thread - Open Alliance 2023

Hello everyone! Happy kickoff!
We’re team 2491 NoMythic from St. Paul, Minnesota (US) and we’re excited to participate in Open Alliance for our first time this year!
I will also note that many students and mentors who will be posting in our thread are using Chief Delphi for the first time, so please bear with us :slight_smile:

2491 Team Links
Main Robot Assembly CAD: Link
Robot Code: Link
General Long Term Documentation: Link
Website: Link
Instagram: Link

About Us
Team 2491 NoMythic is an FRC team based out of Great River School and Avalon School in Saint Paul, MN. We’re entering our sixteenth season this year! We have ~30 students, split into three subteams: Build, Programming, and Operations (which means essentially everything else!) Our team rocks purple tie-dye and unicorns wherever we go. Our mission statement is: We strive to create inclusive STEM communities to grow future generations of passionate problem solvers. We’ve qualified for champs four times (2015, 2017, 2020, 2022) and the Minnesota State Championship twice (2018, 2022).
2022 was an awesome season for our team. We were alliance captains at both of our regionals and a fourth pick (our first time in a worlds alliance!) at champs. We won Engineering Inspiration at the Northern Lights Regional in Duluth, Excellence in Engineering at the North Star Regional in Minneapolis, and the Imagery Award in the Carver Division at champs! But honestly, way more important than all that - our team built a really sweet and awesome community and had a blast being together.
We’re super excited for the 2023 season, during which we’ll once again be competing at the Northern Lights Regional in Duluth, at the 10,000 Lakes Regional in Minneapolis, and hopefully beyond!


For our kickoff weekend, we typically meet on both Saturday and Sunday, following a schedule that we improve from year to year.

The agenda in brief:

  • watch the kickoff livestream
  • read the manual
  • basic game summarizing and analysis in small groups
  • split up to play Robot Paper Game, do geometry deep dive, and start scouting form
  • back to small groups to share takeaways from those activities, create top takeaways of small group
  • share small group takeaways to whole team
  • whole team make a list of everything a robot could do
  • in small groups, decide what of those things the Einstein winning alliance captain will be able to do
  • as whole team, combine those robot profiles, then decide final alliance captain robots to win Einstein, worlds division, Minneapolis (week 5), Duluth (week 1), (removing abilities as we go)
  • decide what OUR robot will do: Can we make the winning Duluth and/or Minneapolis robot? If not, what do we change?

This year’s schedule in detail: Link

Top Takeaways from Activities (rpg, geometry, scouting form)

  • Defense seems viable
  • Charging station seems important
  • Links seem very important
  • Speed and maneuverability will matter
  • Do multiple rows
  • Cycle times could be long without floor pickup
  • Cubes and cones seem possible to get stuck (cones in drivetrains, both in grid)
  • Many chokepoints
    – loading zones
    – exits from community zone
    – midfield will have lots of crossing paths
    – charging station could be barrier OR help mitigate chokepoint
    – pathing seems very important
    – alliance strategizing around paths could help

The List of Potential Robot Abilities

click here to see
  • pick up cone/cube from floor
  • pickup (X) on the go
  • get cone/cube from shelf
  • score cone/cube hybrid
  • score cone/cube mid
  • score cone/cube high
  • remove game piece from node
  • dock/engage charge station
  • maintain balance charge station
  • assist allied robot on charge station
  • do (X) in auto
  • auto mobility
  • defense
  • use vision targets
  • comfortably drive over charge station
  • fast node scoring
  • high speed/maneuverability/reliability/robustness/stability (doesn’t tip)/serviceability
  • in match redundancies

Robot Profiles
The following photo shows the robot profiles we made for Einstein (green dots), Minneapolis (red dots), and our partial profile for Duluth (purple dots). We decided to skip division winners.
As you can see, we struggled with letting go of…anything. Ultimately we decided to move on to prototyping without finishing Duluth or deciding on our own robot strategy. We’re going to come back to that Tuesday, with the info we’ve gained from initial prototyping and the wisdom we’ve hopefully gained from sleeping on it!

Main Argument: Cones vs. Cubes & High vs. Mid vs. Hybrid
Some members felt strongly that a winning Minneapolis/Duluth robot would manipulate only cones or only cubes, while others thought it would do both.

  • only cones: there are more cones to score, and focusing on cones would allow high quality system (alliance partners do cubes)
  • only cubes: cubes seem easier to collect and score (alliance partners do cones)
  • both: being able to do both allows them to support alliance no matter what happens with other robots and for sure create links

Some members felt strongly that a winning Minneapolis/Duluth robot would only score on two of the rows, (with multiple arguments for dif. rows), while others that it would score on all.

  • hybrid + mid: not have enough time to do all - drop high due to difficulty. links mean the difference matters less.
  • mid + high: prioritize the higher scoring rows (alliance partners fill in low)
  • all: hybrid does not seem super difficult, so if the robot can do mid and high, will be able to do hybrid, and will be helpful for max flexibility

We think the combination of these arguments might be making our process more difficult – in other words, there may be people who would choose one game piece and all rows, and people who would choose both game pieces but two rows. Discussing each individually might be hiding that.

We’re really hoping that coming back to this on Tuesday we’ll be able to narrow down more effectively!

1 Like

Hello again! While this update is still about last weekend, we should have some more recent updates coming soon as well.

Initial Prototyping on Sunday
Process: After our discussion on Sunday (1/8) we spent some time doing initial prototypes. We didn’t have our strategy set yet so the options were totally open on what to prototype. The goal was to gather as much info as quickly as possible. With that in mind, everyone split into small groups and worked to create prototypes 30 minutes at a time. After 30 minutes, the whole group came together and showed their work. Then it was a new cycle and no one could work on anything they or another group had done previously. We then brought our takeaways from this process back to the rest of our strategy discussion on Tuesday.
I’ve compiled most of the prototype presentations into the following video, which also includes some field element testing from Sunday.

Initial Prototyping Video: Link

Strategy Decision
On Tuesday after kickoff, the team gathered and decided on a robot strategy. We started the day by gathering into five small groups to discuss robot strategies for both regionals that we are attending this year. After 40 minutes of discussion, we gathered back as a whole team and each small group shared their strategies. The next 50 minutes were spent reviewing the five robot strategies and creating one main robot strategy. After a quick dinner break, we gathered back and came up with a final strategy. Here is what we came up with:

Northern Lights (Week 1):

  • Score in hybrid
  • Engage the charging station
  • Be able to comfortably drive over the charging station
  • Have a reliable auto

10000 Lakes (Week 5)

  • Pickup cubes and cones
  • Score game pieces in hybrid, medium, and high
  • Engage the charging station
  • Pickup from floor in any orientation
  • Touch and go system is preferred
  • Has a reliable auto
  • Can comfortably drive over charging station
  • Vision

We decided on this strategy for a two main reasons:

  1. We want to make a robot that can perform all aspects of the competition well
  2. We want to have the time to create and develop all subsystems

These two reasons led us to the decision to create and develop subsystems for the 10000 Lakes regional. For the Northern Lights regional, we will have drivetrain and game piece pushing mechanism. We will also add any other subsystems that are ready, but we will primarily focus on having the other subsystems ready for our second regional. Last year, we felt very rushed to complete the subsystems for our week 1 competition, so we decided that planning the season like this would allow us to have the time to create the subsystems without feeling rushed.

For this season, we have decided to use swerve! Over the summer, we created a test drivetrain using the MK4i modules. We were really happy with the result, so we plan on using them for the season


@Rasmusjacobs This is great! And a great record of our thought process for the regionals. We should all read this again before our meeting tonight!

Programming Update

We code our robot in Java using a command-based framework.
We use GitHub to document our changes, and all our code is publicly viewable here: https://github.com/2491-NoMythic

So far this season we’re still mainly focused on training our new members on command-based robot code, but otherwise we’re mainly working on the swerve drive while we wait for more information from the build team on other subsystems.
Because the SDS swerve library isn’t being updated anymore, we’re having to find a new way to program our swerve drive.

To move away from that, we’ve used the WPI library swerve code as a base to create a swerve module factory that functions similar to what we were originally using. This is a script in our code called “SwerveModule.java” which is where the motors are initiated and controlled. Our modules use 2 Talon FXs for driving and steering, and a CANCoder as a steering encoder. When creating a module in code, you supply the 2 Talon FX motor ids, CANCoder id, CANCoder steer offset, and canbus name. This script can currently be seen in our ProtoSwerve repository.
It will be moved to our 2023 robot when we confirm that it’s working how we want!


Build Week 2

Over the past two weeks, we have been working on prototypes and starting our design.

Subysystem Decisions

Lifting Mechanism:
After week 1, we had two main ideas for a lifting mechanism:


  • The arm is a 2 jointed mechanism
  • It has a low center of gravity
  • It has a wide range of movement

Extending Arm:

  • The extending arm is a pivoting arm connected to a fixed point. The pivoting arm can extend to reach the high nodes
  • It has a high center of gravity
  • It has a wide range of movement

We created a design matrix to rank the two ideas on some different criteria. After filling out the design matrix, we decided to use an arm as our lifting mechanism this season. We also had more prototypes for the arm, which helped influence our decision.

After deciding on using an arm, we looked at what type of intake and/or outtake we want to use this season.


  • Floor rollers:
    a. Has two sets of rollers to intake game pieces from the ground
    b. Would need something to align game pieces inside the robot
  • Cone plow:
    a. Has a deployable plow with rollers to align game pieces
    b. Cones would be knocked over and would have either the base or the tip pointing towards the robot
  • Ski plow
    a. Has two arms that deploy from the robot that can upright cones
    b. This system is a lot less reliable, but is a lot easier to make


  • Claw:
    a. Clamps around game pieces
    b. Can rotate and pivot like a hand
    c. Complex, but can fit a lot of needs
  • Pincher:
    a. Pneumatically opens and closes around game pieces
    b. Has two free spinning grabbers that use gravity to upright cones once they have been grabbed
    c. Very reliable once picked up
  • Double roller:
    a. Uses two rollers to intake/outtake game pieces
    b. Very quick, but needs game pieces oriented accuratly to intake
  • Triple roller:
    a. Similar to the double roller design, but has a different spot for cones and cubes, which adds a thrid roller
    b. Adds complexity

We created some different pairings of intakes and outtakes and ranked them in the design matrix. The result that we got was to have a floor roller with a double roller outtake. We wanted to look at some of the other options compared to this one because we didn’t all feel like this was the design we wanted to go for. The main designs we wanted to look into more were an adapted claw with the free spinning grabbers from the pincher vs the double roller and the floor roller vs a temporary ski plow for our first competition. We are going to wait on making this decision so that we can answer some questions we still had about the designs.

Prototyping videos


We use Onshape as our main CAD software. Over the past week, we have started making geometry sketches for subsystems.

We plan on mounting the first stage of the arm on one side of the drivetrain. This will leave plenty of room for electronics in the drivetrain. The gearbox for the arm will need to have one motor for the shoulder pivot (the base) and another motor for the elbow pivot (the pivot between the two stages). We ran into many issues trying to fit everything into the space we allocated for the gearbox, but we eventually found a spacing that works.

Arm CAD: Link

Space for the gearbox in the drivetrain

Current gearbox CAD without gearing in place

We are planning on using a Neo with a friction brake (WCP-0200) on both stages of the arm to help keep the arm in the same position. We will adjust the force of the pneumatic on the friction brake so that it is strong enough to hold the position of the arm, but weak enough to allow movement if we get hit. This allows the arm to move instead of getting bent and keeps the system simple.

Drivetrain/Electronics board:
We decided to have a drivetrain that is 26x26, smaller than our usual drivetrain. This is so that we can be small enough to fit on the charge station with 2 other robots, but also be large enough to not tip over when moving around the field.

Drivetrain CAD: Link

Current drivetrain

We were able to fit most of the electronics in the central part of the drivetrain as shown in the image above.

Next Steps

This week, we will continue prototyping and answering questions we had about intakes and outtakes. We will also continue to work on the CAD for the arm and the drivetrain.


If you are still looking for example code for your swerve drive, this is the new standard, used by many teams.

See you at NLR!


Build Week 3

We have been very busy over the past week getting the CAD for our arm and drivetrain ready to be machined. We also made a decision on what intake and outtake we will be using.


Main robot assembly: Link
Arm: Link
Drivetrain: Link

End Manipulator:
On Thursday, we decided to design a double roller end manipulator. The decision was made because we want a system that is simple and reliable. We have started to make specific prototypes to figure out what orientation and what spacing the two rollers need to be.

On Thursday, we also decided what intake to use. The decision is to have a ski plow, a simple intake to upright downed cones. It has two arms that actuate out to a specific height that can contact the bottom flange of tipped over cones and upright them. We still need to do more prototyping, but the current idea is to actuate the intake out on either a non-parallel 4 bar or an over center hinge.

We finished cading all of the sheet metal we will be using in the arm and made more progress on the gearbox and joints. We decided to use 2 1" tubes for each stage of the arm because we ran some calculations and determined that it would provide a good balance of weight to deflection. If needed, we can also change the tubing to carbon fiber from aluminum.

Our next step with the arm is to finalize the plating of the gearbox. We also need to figure out how to add encoders to both stages of the arm.

We finalized the sheet metal for the drivetrain and figured out electronics placement. There are still some things that we need to find places for, but we may end up putting them else where.

Our next steps are to finalize electronics placement and get the belly pan ready to be manufactured.

Sheet Metal:
One of our sponsor, Quality Tool, generously cuts and bends sheet metal for us. We sent the sheet metal CAD for the arm and drivetrain to them on Wednesday, so they can start to machine it.


Build Deadline

This year, we set a deadline of February 11th for the robot to be mechanically completed by for the first competition, which is our own bag day. Whatever isn’t on the robot, we won’t end up taking to Northern Lights. That being said, our goal is to get all build work done on the robot before then.

Build Week 4

We have been making great progress on the robot and we have until Saturday until we are giving it to programmers.

Over the past week, the design team got a lot done! The drivetrain and ski plow are fully in CAD. Now the design team is shifting their focus towards finalizing the arm and end effector.

We finished manufacturing all the parts for our drivetrain. Over the summer, we worked on a tube jig to cut holes in box tubing. We have it set up on our X-Carve Pro and it works great!

We have also been working on manufacturing all the parts for the ski plow. Almost all of the parts have been made, but we still need to finish up a few of them.

After getting drivetrain parts manufactured, we set to work assembling the drivetrain. We started with getting our electronics panel started and then worked on building the structure around it. After we had assembled the swerve modules and the outer box tubing, we added it to the electronics board. We finished wiring and have given it to programmers!

Bag Day Update

On Tuesday, captains and mentors met and decided to update our bag day schedule. Here is the updated plan

  • After bag day (2/11) build will keep working on the arm — if they feel it is totally ready then
    the captains and drive coach will meet to discuss whether programming should take it on
  • Then, if programming is happy with it — the same group of people will meet to discuss again whether to put it on the robot
  • This does not change that the main plan to have a drivetrain and skiplow done by Saturday 2/11 and bring that to the Northern Lights regional
  • If we happen to get the arm done before we bag, that is a bonus
  • If we happen to get the arm done such that we can put on after bag day before the Northern Lights regional - we follow the procedure outlined above

The main reason to update the plan was to allow build to keep working on the robot after Saturday, but still allow programming and the drive team to use the robot. We have also realized that the arm won’t be ready before Saturday and we want to make sure that we have a plan such that we can bring it to our first regional.

1 Like

A plan such that we could get it on before the first regional if it works out that way. Rasmus is really hoping it will :slight_smile:

But we won’t be holding any additional extra practices and we’re trying to keep down the pressure/stress!

We would have been working on the arm anyway for our Minneapolis robot but we’re just opening the door to putting it on for Duluth if it makes sense too!


Build Week 6

I realize it has been a while since the last post. Let me tell y’all what we have been up to!

Bag Day

After a long 12 hour practice on February 11th, the build team bagged up the first version of the robot and sent it to programmer!

New Intakes

Last weekend, the drive team had their first official drive practice with the robot. After some testing, we learned that our original intake idea wasn’t going to work. Having swerve is a big advantage for the drive team this year, but the intake didn’t hold onto game pieces very well limiting the turning with a game piece to about 15 degrees instead of the full rotations that we would like.

On Wednesday and Thursday, the design team got together to try out some new geometries. We came up with two different ideas to test and built them on Friday.

Passive Hoop
The passive hoop design involves a flexible hoop piece that drops down on the same pivot mechanism as before that surrounds game pieces allowing us to have more control of it.

Roller Intake
The second design is a bit more complex. It involves a more traditional styled intake that again mounts on the same pivot mechanism as before. The intake has 3 different rollers: two for cones and two for cubes (the middle roller is used for both). The rollers are driven by a Neo550 that is belted and attached through polycord to the three rollers.

Week 0

Today we went to our week 0 competition run by team 2052 KnightKrawler. We brought the robot with both intakes to test out and it was a great experience! After some trouble shooting of the robot and code, we ended up with a very fast robot that can score well into the hybrid nodes.

The pit crew started the day with the hoop intake, which worked quite well. Occasionally losing game pieces, but generally was a great improvement from the old intake. After lunch, they switched to the roller intake, which did not work as well. It ended up being too heavy for the pneumatics of the pivot to lift, so we dropped it down at the start of the match and couldn’t lift it up again. This added weight and force to the system caused one of the pneumatic cylinders to bend.

After the results of both intakes, we have decided to use the hoop for our first regional. It is simple and reliable and seems to be just what we need!

The Arm

While part of the team went to week 0, the rest of the team was at the shop continuing the work that we have been doing on the arm and end effector over the past two weeks. After practice today, we got the arm mechanically assembled and gave it to the programmers for initial testing. We still need to wire up encoders and limit switches, but here is a video of some testing:

With our first competition being a week 1 competition, we have decided to not bring the arm with us to the Northern Lights regional. We haven’t had enough time to test it and we stated in our original strategy that we wouldn’t take it unless we knew it would work. However, we will continue to work on it for our second regional.

Northern Lights

In only 4 days we leave for our first regional, the Northern Lights regional. Last week, roles for the team were announced and everyone has been learning what they will be doing while there. Along with all the logistics, packing has started. On Tuesday, we will have everyone focusing on making sure that we are all packed up and ready to go!


Update Following 1st Regional

Hi again! Our team had a great time at the Northern Lights regional in Duluth this past weekend. Team-wise:
We were lucky enough to ride the bus up and back with 2177, The Robettes! They’re awesome and we really enjoyed it. :slight_smile:
We also did a bunch of hair dye and ended up with lots of purple hair, which was somewhat silly and very fun.
Our mentor Chris Ward was honored with the WFFA which was super exciting!
The team also won the team spirit award in a kind of fun cyclical moment – on Thursday night our coach told us all the story of winning it in 2012 with only 2 people left in the stands to receive it – and on Saturday we won it again and pretty much the whole team was there and able to go down together!
Competition overall had its ups and downs but I think we had a pretty good time together and were really grateful to be able to experience it as a team. I certainly was, at least!

Robot Performance
So you may hear a bit more from my counterparts in this regard but I remain delightedly astonished that the passive hoop intake design that we came up with a week before competition worked so well - gotta love FIRST students and their brains. :purple_heart: In reality it was a combination of that and the hours of work that went into our swerve (special shoutout to @roybot is definitely deserved here) which allowed us to be fairly competitive. From our understanding we ended up being the lightest robot at the regional (53 lbs before bumpers + battery, 72 lbs after) and also one of the fastest (probably related!)
To sum up our robot (Moira), she had a very fast and flexible swerve drive, was very low to the ground, and had a passive hoop intake on pneumatics allowing us to transport and score cubes and cones low.
I think we learned a lot about strategy + robot manipulation over the course of the competition and by the end we were playing a combined strategy of scoring low and “the carrier pigeon” in which we brought game pieces to other robots to score on higher levels. I think I have a renewed belief in not just the importance of driver practice, but the importance of, like, strategic practice? I’m not sure how much we could have figured out ahead of time but I think we learned a lot about how to form strong alliance strategies over the course of the weekend and it would have been cool to have had more of that understanding at the start. I will say getting to all of our scheduled practice matches and then cycling through after scheduled matches on Thursday was a big win for us though!
For me I think the best part was just how FUN it was to watch our robot out there. I have a lot of respect for our drivers! Regardless of everything else, the image of our robot zooming around the field is going to stick in my mind for a while.

Here’s one of my favorite matches we were in:

What comes next?
What I wrote this morning…
We took this Tuesday off to give people a break… and also to prevent spreading COVID. We’re meeting again today, and we will have some people online. So I guess just a PSA that masks and testing are still a good idea at comp! Anyways, we’ll be debriefing Duluth, and figuring out what comes next.
There are a LOT of feelings about robot strategy coming out of Duluth – as Rasmus mentioned before we left, we have an arm sitting in the shop – but not everyone feels that that’s the best way to go for Minneapolis. We’ll keep you updated on what we decide! Big priorities do include programming + drivers having adequate time so that will limit us a bit.
We also want to make sure we do take the time to really document people’s thoughts and ideas and feedback after this competition, so in addition to tonight’s debrief, we’ve sent out a survey for additional feedback. And we’re doing a pulse check to see where people are at emotionally following the competition.

Okay so…post-meeting I can tell you things did not go exactly as we expected/planned them to — but I’m still posting the schedule we were planning to follow — I will post another update that explains what changed because that seems easier to me that re-editing this!

Thursday Schedule (First Practice Back)

click here to see

Start as a whole group (simultaneous but separate in-person/virtual meetings)

  • A poem (1 minute)
  • Highlights/what went well in Duluth (10 minutes)
  • Review Goals for Duluth - how did we do? presentation (5 minutes)

Duluth subgroups (virtual members will call into in-person meetings)

  • What went well/what could go better debrief (20 minutes)
  • What do we need to do, as a subgroup, to prepare for Minneapolis? (15 minutes)

As whole group (simultaneous but separate in-person/virtual meetings)

  • Appreciations (10 minutes)
  • What have we learned about the game + strategy? - no repeats! (5 minutes)

Optional strategy discussion (play it by ear, probably simultaneous but separate)

  • Review robot goals for Minneapolis - where did we set our sights
  • Present strategic options for Minneapolis
  • Ask are there other options we should consider?
  • What are the critical questions we need to answer to help us decide on a strategy?
    (Goal here is to list what questions, how to answer them, and who will answer them)

After dinner, focus on answering the questions + other work

Friday Extra Practice

click here to see
  • Before dinner, keep answering questions
  • After dinner, use new info to try to come to resolution on strategy
  • If no decision is reached, a group of 5 students (team captain, both build captains, programming captain, and drive coach) will be tasked with reaching a decision before Saturday morning at 10

Feedback Survey Questions

click here to see
  • Name
  • How did Duluth go for you overall? (1-10 scale)

Text boxes:

  • What were the largest contributors to how it went for you?
  • What was the highlight of the trip?
  • Transportation and Lodging: What went well? / What didn’t go well?
  • Food: What went well? / What didn’t go well?
  • Meds: What went well? / What didn’t go well?
  • Roles: What went well? / What didn’t go well?
  • Other: What went well? / What didn’t go well?
  • What could the team do differently next competition to better support you?
  • What could you do differently next competition to make it go better for yourself or others?
  • Were there any conversations, behaviors, or actions that were inappropriate, made you uncomfortable, or should otherwise be reported to mentors? If yes, explain.

Pulse Check Questions

click here to see

The following questions are answered on a 1-5 scale (1=no, definitely not, 5=yes, absolutely)

  • Do you think you’ve contributed to the team in a meaningful way in the past month?
  • Have you had input on important decisions on your subteam in the past month?
  • Have you felt heard on the team in the past month?
  • Have you felt valued on the team in the past month?
  • Have you felt supported on the team in the past month?
  • Have you felt emotionally safe on the team in the past month?
  • Have you felt physically safe on the team in the past month?
  • Have you been able to learn about things you’re interested in on the team in the past month?
  • Have you felt up to date with the team in the past month?

Text boxes:

  • In what ways could the team do a better job in these areas?
  • feeling able to contribute
  • having input on decisions
  • feeling heard, valued, supported, and safe
  • being able to learn what you want to
  • feeling up to date
  • Would you like a mentor/captain to follow up with you about your response? If so, please write your name here:
    If you would prefer a specific person to follow up with you, you may add that to your response.

How it actually went tonight:

So the in-person strategy meeting was honestly a bit chaotic and took a major pivot from our initial plans – but I think ended up aligning pretty well with what the online meeting, which did this process separately, figured out.
We initially listed a bunch of potential strategies – and then our mentor, Michael, put a calendar on the board and we talked about how if we wanted to give the robot to programmers two weeks before Minneapolis, we have essentially 3 practices to complete it mechanically. Which is not much time!
So then we came back to - we need to prioritize the tests with the arm, because we already have it, and if it does work how we want it to, then it is almost certainly better than creating any of the entirely new mechanisms we had brought up.
And so essentially, given that, it doesn’t make sense to have a whole bunch of testing and then a strategy meeting about which strategy is better.
What does make sense is to see if the arm passes the tests and if it doesn’t then we need to do something else.
And the something else also can’t be terribly complicated because again. 3 practices.
But we could develop the passive hoop further, we could shorten the arm. Maybe something else very simple. That’s a conversation for if the arm doesn’t do what we think it needs to – allow the robot to be fast and stable and effective.

List of Tests

click to see

Arm Tests Needed:

  • how does the robot do with speed, tippy-ness, and battery, driving normally + over the charge station, with and without arm
  • end effector effectiveness and speed
  • speed of movement of arm
  • general tippy-ness and center of gravity testing → if not working, consider shortening arm
  • arm flex/bendiness

Additional Testing:

  • does the roller intake that didn’t work at week zero work now
  • checking on battery drainage generally
  • how robust is hoop intake - ram into things
  • can we make the hoop intake better at cone control
  • are bumpers causing any issues + do they need to be moved up?
  • could we have the passive hoop + the arm?
  • some more swerve testing because we love nothing more

Closing Thoughts
I have a feeling that this turn of events is not shocking… but, you know, it took us a minute to really fully figure it out, and… that’s okay. If you’re curious though, some team + meeting-running type things I learned from this experience:

click to see
  • Setting clear parameters and looking at the calendar and figuring out what we can actually entertain ahead of time is so helpful! We had a whole lot of conversation about things that were probably out of the question from the start and we could have figured that out beforehand.
  • Trying to ask the questions of outcomes wanted and reasoning behind what we are doing is also really important. I think we would have come to conclusions more quickly if we’d made sure we understood that.
  • Somehow talking through the steps of the meeting more! I feel like I thought I knew what was happening and then we got halfway through and we got stuck because it didn’t make as much sense to keep following the path as it had seemed like it would when we planned it.

Another Strategy Update

This morning, Eva (build captain) and I took stock of all of the conversation + decision-making yesterday. We made a little flow chart based on that decision to guide us forwards.

Flow Chart for Arm Decision

  1. arm passes all tests → use arm!
  2. arm struggling center of gravity → weight under battery OR heavy belly pan
  3. those solutions are not functional → shorten arm
  4. other fixable issues (Eva confirms fixable) → fix them
  5. arm not vibing whatsoever → develop hoop/other floor intake as primary mechanism

We also agreed that further conversation about the presence of an intake if we were to keep the arm remained unclear. We hoped to cover this at tonight’s practice but did not really make a robust plan to do so.

At practice, we prioritized getting the arm on the robot and testing the speed, stability, and function of the drivetrain once the arm was on there. The tests were very successful!

The other main arm tests we had listed that we wanted to do were arm movement speed and end effector efficiency - we decided these could not really be tested soon enough to try to incorporate them into a decision. Therefore, we decided we are ready to commit to the arm + we will do our very best to make all the pieces work as we want them to.

Then we had pretty much finished the meeting and we had a collective crisis of mind wherein we realized that we lacked clarity on what was going on with our end effector (on the arm) and a potential floor intake. And we needed to figure that out fast because we are on a very tight timeline. So we talked through our options.

Here are some relevant baseline decisions we made:

  • we are sticking with our Minneapolis robot profile strategy. probably most importantly, that means floor pickup, not human player station.
    (in terms of deciding on floor pickup for sure – we talked about really wanting to pick up from the floor, wanting to do that in auto, and thinking that our competitors will be able to + so on those grounds and on the grounds that our original strategy and design had been focused on ground pickup + not human player station we essentially called it for floor and only floor)
  • we are putting full force into one strategy that we believe in. (rather than focusing on developing backups)

Three potential strategies emerged:

  1. arm with end effector that picks up from the floor. no additional intake
  2. arm with end effector that obtains pieces from an intake that picks up from the floor
  3. arm with end effector that picks up pieces from the floor coexisting with completely independent floor intake

The decision between those strategies is the job of the 5 people we identified previously - build captains, programming captain, drive coach, team captain.
We have to limit that group due to the time constraints we are under. The plan is to have a decision by 10 am tomorrow (AKA we are meeting before practice). The very latest we could deliver a decision is noon. If we cannot decide, option 1 is our default, and that will be the decision.

for the curious, our current understanding of pros and cons of the strategy options:

click here to see


  • simplest
  • what we have already been planning for


  • danger/concern of other robots hitting our arm/end effector while we are picking up from the floor


  • mitigates concern of other robots hitting our arm
  • the room seemed to agree that if we could fully accomplish this it was the most competitive option


  • complexity complexity complexity


  • still developing the end effector as originally planned
  • if in danger, can use intake to bring pieces to community then output and score low or pick up with end effector
  • two independently operating systems should be less complex than mechanisms functioning in tandem


  • still has complexity of two mechanisms
  • less of the benefits of efficiency

Strategy Decision
After much discussion this morning, we are going with Option 2. An arm, end effector, and intake working in tandem.
Some specifications of the strategy:

  • intake takes from floor
  • arm (with end effector) takes from intake
  • arm (with end effector) scores on other side of the robot
  • intake is resilient and replaceable
  • intake goes out over the bumper
  • focus on scoring high and mid
  • limelight faces scoring
  • camera faces intake
  • automate on-off of intake
  • auto line up

We decided that this was viable! We hope we’re right!


In order to try to meet our goal, we’ve created a fairly intense timeline for the next few weeks!
Here’s hoping we can pull it off!
I’ll try to keep it updated as we go… this is definitely subject to change.

2023 NoMythic Build Timeline


Hello again!
Who knew that it was difficult to keep writing updates at the same time as putting all your energy into building a robot? :slight_smile:

I realized that we hadn’t sent any updates and so I decided today we would try a new update format: an interview! I asked @Rasmusjacobs a series of questions while he was tapping parts this morning. Here’s what he said:

What mechanisms have we designed to accomplish our strategy?

  • Build has designed an intake styled off of 3357’s intake, using one roller to tip up the flange of a cone, and to intake cubes.
  • Along with that we made an end effector with two spots, one for cubes, one for cones.
  • The arm rotates the end effector over the intake.

Our CAD, which is mostly accurate!

What challenges have we encountered with the design?

  • We realized a few issues with the arm - when we added the end effector, the arm was bending downwards from the weight and the end effector was twisting at an angle and also sagging on one side.
  • To solve that, we increased the bend on the arm, bringing it further away from the gearbox.
  • We also added a clamping mechanism to hold the end effector on. We were originally using bolts, but the bolts weren’t necessarily lined up with each other. The clamp stopped the end effector from twisting.
  • We added a string to the end effector which added tension between the sagging side and the top of the arm.
  • Making these changes to the design caused us to have to move our limelight and radio mount. Instead of using a tower, we put the limelight on a 3D printed mount to our gearbox. We put the radio on top of a swerve module.
  • When originally designing the arm, we 3D printed the drums for the cable that rotates the second stage of the arm. However, after some initial testing, the drums broke. We came up with two solutions. Practice bot: reprinted with higher infill and added metal to the distribute the load of the string. Comp bot: we are switching to chain. We are remaking the parts to allow for a sprocket on top and bottom with the correct spacing.

Clamping Mechanism:

editor’s note: watching this solution come together was such a fun fast turn around - the problem was identified Saturday morning, a solution was designed, the part was CADed, the part was manufactured, and it was on the robot Saturday evening!

How is the practice bot (Moira) doing?

  • We worked on Moira over the last two weeks and have now installed and wired all parts. She was given to the programmers last Saturday. She came back to us briefly to fix the drum issue but has been with the programmers since.

Moira this morning:

How is the comp bot/purple bot (Tyche) doing?

  • Over the past few weeks we have been manufacturing and assembling parts for her. We got the drivetrain fully wired, and programmers will be working with that today. We’re still assembling the arm, intake, and end effector.

Tyche this morning:

Which robot do you think we will be competing with at Minneapolis?

  • Hopefully Tyche! But if we run into complications, it is possible that we may be competing with Moira. And that would be okay!

Update Following 2nd Regional (Minnesota 10,000 Lakes)

Hi! Oh my goodness! I have so much to say! So much has happened?!? A functioning robot! The Impact Award! We’re going to Worlds! Let’s backtrack though because this week has been SUCH a roller coaster and I want to write it alllll down.

Many thanks to @Rasmusjacobs and @Roybot for their extensive help documenting and explaining all of this!

Saturday, March 25

I posted my last update, and we worked really hard to get the robot together. At that point the plan was to have a few extra practices on Sunday and Monday, and then give the programmers a fully assembled Tyche on Tuesday. Which is of course pretty late to receive a robot, but probably not the latest in our team’s history, if we’re being honest. The plan was for the programmers to deal with it Tuesday and then give the drivers a couple hours of practice Wednesday afternoon before we loaded in.

Tuesday, March 28

Programming did actually somehow receive the robot, and made progress on code and it was all very exciting and then right near the end of practice the arm broke! As in, it decided it was actually not interested in this whole business of moving around and being an arm and would rather be a stationary statue thank you very much. In other words, something was going wrong with our friction brakes.

Details on friction brakes:

We used friction brakes on our robot to stop the arm from moving when we didn’t want it to be moving. The friction brakes were attached to idler gears at the first reduction of the arm, which is in the base of the system near the motor. Each gear was attached to the brake via a hex shaft, which slid into the brake cone, where it was allowed to spin freely, and then when the brake was activated it stopped that hex shaft from spinning. Therefore the gear spun freely when the brake was not engaged, but when it was engaged it locked that gear, thus locking the system.

We did not know quite what was wrong and why the brakes weren’t working, but we came to the sad conclusion that Wednesday afternoon would not be a drive practice, it would be a taking the arm off the robot and dealing with the friction brakes practice.

Wednesday, March 29

“It’s fun doing open heart surgery on a Wednesday afternoon,” said our head coach, as we took off the arm and partially disassembled the gearbox in order to investigate and fix the problem.
Our best guess at that point was that the hex shafts were too long, which turned out to be correct. When the pneumatic was extending, the brake cone was hitting the end of the hex shaft before the brake pad. With hitting the hex shaft over and over again, the brake cone got stuck to the hex shaft, and it got stuck in a way where it completely prevented the hex shaft from spinning.

Purple shows where the shaft was too long

At that point we thought about removing the friction brakes. We were originally using them to stop the arm from moving while the robot was active, but we thought that it was likely somewhat redundant because the PID, feed forward, and motor break mode seemed to be effectively stopping movement without needing the friction brakes.

However, we ended up deciding to keep them in because it seemed like a simple enough edit to just shorten the hex shafts and we were worried that taking them out might cause new problems. We were also concerned about the arm falling down when the robot lost power because the other methods only work when the motors have power.

The work on the robot continued all the way to tools down at 6pm, at which point Tyche was no longer in pieces but was in fact a fully assembled robot. Then we packed the trailer and drove to Williams Arena, arriving at 7 and loading in until 8. That night, our programming captain worked with a mentor to code all of the controls for the arm, because apparently that had not happened yet. (Understandable, honestly, with the timing of it all.)

Thursday, March 30

We got inspected first thing! And then there was lots of coding and testing and things were going well and then the arm decided, once again, to just not. Of course the problem was the friction brakes that we had decided not to remove. We took a look at them and noticed that one of the brakes was always engaged. We tried a few trouble shooting methods to see what the issue was but it turned out that the issue was in the spacing of the brake cones and not the pneumatic or a different part of the system. So we accepted our fate and removed the arm! Again! And we did surgery again! In our pit this time!

Once we took it apart we could see that the bolt holding the brake cone onto the pneumatic cylinder was unscrewing itself and backing out. (Locktite! Would have been nice!!) As it backed out, a small 1/8" spacer that allows for the correct spacing between the cone and the pneumatic slipped down into the threaded part of the bolt. This meant that the pneumatic couldn’t actually retract (the spacer was blocking it). This caused the arm to be permanently locked.

We were so done with the friction brakes at this point and programmers agreed they could be removed, since we thought that the other methods should be able to keep the arm steady without them.

Doing this caused us to miss all of our scheduled practice matches, which was unfortunate but necessary. The operation was completed around 5, and we ended up making it to three filler matches. This was the first time our drivers actually got to drive the robot. We also decided at some point that despite our initial plan of using a floor intake, we were actually going to primarily use the shelf to get gamepieces.

Friday, March 31

Friday went pretty well, all things considered! We developed autos, our drivers improved tremendously, and we ended the day with a list of issues to prevent. Here’s an overview of our matches:

auto teleop endgame
quals 5 failed balance (bumper issue) 2 cones & 1 cube high successful two robot balance
quals 14 successful mobility 4 cones high failed triple balance, two robots docked
quals 22* successful mobility 3 cones & 1 cube high successful two robot balance
quals 31 1 cube high, successful balance 4 cones high failed two robot balance, docked alone
quals 41 1 cube high, successful balance 2 cones high, 1 cone low successful two robot balance
quals 52 1 cube high, successful mobility 3 cones & 2 cubes high successful triple balance
quals 62 failed cone high (misload), successful balance battery cable hit breaker and we turned off and did nothing else

*Quals 22 was a surrogate match for us!

Bumper issue:
The bumpers were too low, and they were hitting the charge station. This made it hard for the robot to actually get up in auto, and then before we were actually up, the robot reacted to the angle with an inverse reaction, where the upward slope caused the robot to drive downhill to “balance” on the floor. We ended up raising the bumpers on the robot (lowering the attachment point on the bumpers) which solved this issue.

Turning ourselves off:
This was possibly one of the most unfortunate events of the competition to be honest, just because it felt like such a silly issue. We drove really quickly over the charge station, our battery cable bounced inside our robot, it hit the breaker, and we turned off. At least that’s what we think happened! We started securing the battery cable after that… and told our driver to take it a little easier over the charge station.

End effector side panels:
While they did not cause an issue in match, there was concern that our polycarb sidepanels might not stand up throughout the rest of the competition. One crack had been identified, and while it hadn’t worsened and others had not appeared, the eventual decision was to replace them with new polycarb and reinforce with thin aluminum pieces (cut in the machine shop during the competition! Thanks U of M machine shop!) We had ~45 minutes after our last match of the day and ~90 minutes before our first match the next day so it seemed like it was now or never. Once we actually started to disassemble the end effector we realized there were more cracks that had been hidden, so that reaffirmed the decision. It wasn’t an easy one to make though! There was concern we would cause new issues by adding weight, and that we might have trouble reassembling since the bolts that were holding the end effector on had had some trouble getting in there the first time round.

Saturday, April 1

We started out with such high hopes for this day! It was going to be the day we did three matches with 5-6 gamepieces per match - our drivers were more practiced, our robot was ready, everything was stellar. We even had an extra hour in the pits in the morning due to the blizzard delay to finish swapping the end effector side panels and then prep autos and such. And, I mean, the day did end pretty happily, but it was a little bit of a rockier road than we anticipated.

The end effector swap went well! After that we started working on more autos, wanting to try these:

  1. score high, go over the charge station, grab a piece, and then balance
  2. score high, go over the cable protector, grab a piece, score that piece

Then we had two more issues:
While testing, we lifted up the intake and the left panel snapped in half. We ended up just replacing this, we had a spare panel handy.
We also had the spark max motor controller for the end effector small roller break. We tested it by manually feeding the neos power with Rev hardware client, and the spark max motor controller would crash and reboot every time we tried to give it power over a certain level. We replaced both the spark max and the neo.

How our last three qualification matches actually went:

auto teleop endgame
quals 73 auto failed, no movement 1 cone & 1 cube high, 1 cube low (arm broke this match) successful two robot balance
quals 83 the robot did not attend this match, it was being fixed
quals 92 successful mobility 2 cubes high, 2 cubes mid, 1 cube low successful two robot balance

Auto failure:
We think this was due to our old version of shuffleboard struggling?
We also realized that when our auto doesn’t run, the proper settings for driver controls aren’t set, so our drivers struggled a little bit to figure out what was happening.

The arm broke again:
This time, it was our chain tensioners. For the arm, we use two sets of chain tensioners, one for each stage, and both malfunctioned for different reasons at the same time! Fun!

One chain tensioner uses a shoulder bolt and nut to keep the spacing correct for the idler sprocket. The issue was that the nut that was holding the shoulder bolt onto the arm backed itself off, so that the tensioner was able to move around, and slipped out of its slot, causing the chain to be untensioned. (Probably another locktite issue. I swear this was a very useful learning experience and all bolts on our robot will be checked before worlds!)

The other chain tensioner uses a shaft that spans between two of the plates, with the idler sprocket on it. The issue that happened was that that rod split in half, causing the idler sprocket to no longer be aligned with the chain. We believe that that happened because we had over tensioned the tensioner, causing too much force on the rod.

How we fixed it:
We ended up cutting a hole in the bottom of the robot in order to get more accessibility to the gearbox. Then we used spare parts and replaced the missing pieces and properly tensioned the tensioners.

the cutting of the hole…this photo was taken while they were calling our match to queue

One extra issue: The tensioners are tensioned with bolts going in perpendicular. Those bolts have little 3D printed saddles that they sit in to align themselves with the chain tensioner so that they don’t slip off. We lost one of those saddles when the tensioners broke and we didn’t have any backups. What we ended up doing was drilling out a large nut and then using the flat face of that for the bolt to rest against.

After turning ourselves off in a match on Friday, and then missing our second to last qualification, we felt very lucky and were very very happy to be picked. We joined the 4th seed alliance with 7068 Mechanical Masterminds and 2502 Talon Robotics. The alliance ended in third place, and after we were eliminated, our team couldn’t stop saying, “Do you remember where we were Tuesday? and Wednesday? and Thursday? and this morning?!?” We were incredibly glad to have made it as far as we did.

triple balance with our playoff alliance!

Our performance in playoff matches:

auto teleop endgame
semi 2 failed cone high (misaligned), successful mobility and cube pickup 2 cones & 1 cube high successful triple balance
semi 7 auto failed, no movement 1 cone high, 1 cone mid, 2 cones low [failed high] successful triple balance
semi 9 1 cone high, failed cube pickup 1 cone & 1 cube high, 1 cube mid (severe brownouts this match) failed to get on charge station due to brownouts
semi 12 1 cone high, failed cube pickup/score 1 cone & 1 cube high, 1 cone & 1 cube mid, 1 cone low successful triple balance
semi 13 failed cone high, failed cube pickup 2 cones & 1 cube high, 1 cube low (connection issues this match) successful two robot balance

Auto failure (no movement):
We think this was also due to bad shuffleboard.

Other auto failures:
We were still trying to figure out how to get the path and alignment right on this auto and just didn’t ever quite get it. This auto was on the non-cable protector side since 2502 had a more reliable auto on the cable protector side already.

We think we had a bad battery. We put it aside and stopped using it. We’re not sure why we didn’t catch it before the match, but we’ve been pretty careful about checking batteries since then.

Connection issues:
We think this was due to unreliable USB cables?

And then, when we thought we were done… we received the Impact Award. So many tears!! We are so so honored and unbelievably excited to compete again at worlds in a few weeks.

Our written submission can be seen here if you are interested: https://www.firstinspires.org/sites/default/files/uploads/resource_library/frc/game-and-season-info/awards/2023/FIA/2491.pdf

I am so excited to see what we can do with this robot once the programmers and drivers have some time with it. We’ll try to keep you updated! Although we’ve proved that we’re not the best at that – hopefully this very long, very detailed recap makes up for that a little bit. Thanks for following along!