Wednesday, May 15, 2024

World Championship - Curie Division Event Recap



Excellence in Engineering Award

We ranked 4th, was the 1st pick of the 1st alliance, and were eliminated in our third playoff match. We ended up with a 9-4-0 record. Thank you to our alliance partners 2200 MMRambotics, 2137 The Oxford RoboCats, and 503 Frog Force!

For the first time in our team’s history, we were awarded the Excellence in Engineering Award, completing our robot award hexfecta. We are extremely grateful to be recognized with this award at the Worlds level. 

Failures and Fixes

Failure: The bottom intake roller was somehow missing one of its bolts during our first match. Oops. We managed to play normally until around 0:40 left, when a defender pushed us up onto the roller and stayed there so we couldn’t move until they moved away. 

Fix: longer bolts and ensure they are tight between each match (loctite isn’t an option because of polycarb)

Failure: Intake stopped spinning during our practice match because debris and carpet got tangled in it in the form of a gray and orange hair ball. 

Fix: check for that before every match. 

Failure: The competition fields used Batch 2 notes, which are significantly harder than Batch 1 or 3 notes. At some point, our Batch 1 notes started getting stuck in our intake during system checks. It would feed correctly if intake was pressed again. We never noticed the issue during matches. 

Fix: Replaced lower frame tube.

Failure: Max planetary output stage shattered during system check.

Fix: Replaced the output stage

Failure: After receiving some double defense late in the event, our indexer plate cracked, allowing the indexer motor to wiggle and slowing one or two of our feed launches. 

Fix: Zip tied everything together. It worked. In the future we’ll need to replace the plate.


There is too much to cover when it comes to autonomous, so it will get its own dedicated post later.

During our last match we had a false positive on our LaserCAN during our trap sequence. This caused the robot to believe we had a note in the amp-trap mechanism and we climbed.

End of season 

EPA rank: 22nd Worldwide, 2nd in Texas

Saturday, March 30, 2024

Day 82: Design Recap

 These were made on Tuesday, sorry for the late post.

Other controls items we are working on

  • Improved pose/vision aiming

  • Faster amp scoring

  • Improved feeding/passing auto-aiming

  • Faster climb/trap sequence

Days 78-79 Houston District Event Recap



District Event Finalist

Industrial Design Award

Last weekend, Spectrum competed at the Houston District Event. We went 10-7-0 overall, and finished ranked 4th. We won every playoff match in the upper bracket and lost both finals. Thank you to our alliance captain 9478 Robo-Colts and our alliance partner 8144 Red Chair Robotics!

We were honored to be awarded the Industrial Design Award.

Failures and Fixes:

Ultraviolet held up very well at this event. We only had two small mechanical failures.

Failure: One side of our launcher’s sector gear popped out of its gear for a moment on a heavy impact. It did not affect our ability to launch.

Fix: Added a steel plate to the inside of sector gear on that side to prevent this from happening again.

Failure: We bent our frame on our intake side on a heavy impact. It did not affect our ability to intake.

Fix: Replaced it to practice, and time the fix. We discovered that replacing the intake-side rails took around 45 minutes to replace, which was longer than we would like. To address this, we considered several options, one of which was having a complete intake spare ready to be swapped in. However, we decided against relying on having time to replace the intake and instead be able to run multiple matches with bent rails. We are changing some mounting locations for a camera, and some intake geometry to make this work.

Controls update:


We ran our center sub 6 note most matches. We tuned it during the event until it consistently scored 5-6 notes throughout playoffs. We ran our less tuned source side 4 a couple times in qualifications as well.


  • Found that right limelight was for some reason noticeably worse than the others so we disabled pose from that camera for the event

  • Found that integrating pose from different cameras at once will make pose less stable (each camera is reading a slightly different pose at the same time) --> planned change: use one at a time based on which one is closer/seeing more tags

Code changes

  • Altered amp timing- Sometimes our amp button would feed the note too far, spitting the note all the way out or just too far to score. We decreased the amount of time it should feed, and that improved the issue.

  • Increased climb speed to maximum (when we realized it wasn’t already at maximum for some reason)

  • Our feeding shot worked despite vision issues; we could feed to the area near the amp from anywhere near the midline. Here’s an example; in this match the notes landed too far from the driver station wall and one hit the stage, so we increased launch velocity after this match.


  • Elastic worked much better than shuffleboard and was a good switch

  • Again no really big control failures so changes were gradual and minor to avoid regressions

Other notes

Shoutout to our media team, they absolutely killed it this event. Check out our Smugmug to see their work.

Our trap never failed at this event. Here’s a 10 second climb+trap.

Planned Improvements:

  • Improve auto aim until it is nearly 100% accurate. The plan so far is to retune pivot (much faster now), launcher (much more consistent now), rotation controller (faster and less overshooting); remake our data points much more accurately and with many more points. At events, feed good shots back into the data map (we did a little bit of this towards playoffs at Houston but should do more of it); refine pose strategy to be able to better know where we are (overall at Houston pose was much more jumpy than the silent stuff we saw at Belton); maybe move away from using pose for aiming (instead using vertical and horizontal offsets from the speaker tags). Since speaker launching was not 100% accurate at Houston, our drivers were turned off of using it often.

  • Add second sensor to prevent amp overfeeding issue

  • Fully automate climb sequence (including alignment)

  • Change intake slightly to ensure intaking with bent rail always works

Day 77: Warm Spares and Pre-Houston Updates

 One of our goals coming out of Belton was to swap any major control system component with as little downtime as possible. To achieve this, we have created our Warm Spares Bin. This bin allows us to have pre-configured control system devices, where we can upload the latest code to MicroSD cards, and set CAN IDs of replacement devices while the original is being removed.

This bin is a collection of every configurable control system component on our robots and several spare microSD cards, already imaged, set team number, and code deployed as the latest pre-event build. We power the box using one of our normal robot batteries, with a light switch to switch it on and a 30A ATM fuse.

Additionally, we made an active CAN bus, with firmware updated for each of our CAN device types and licenses assigned to both 3847 and 8515. This includes a Falcon, Kraken, CANivore, CANcoder, Pidgeon 2.0, and LaserCAN. We have additional unregulated, 5V, and 12V power available for any additional devices needing configuration or offboard testing.

Houston Upgrades

Here is a list of things that are different from Belton to Houston:

  • New LEDS on old Climber Bar

  • Total of 4 Limelights for better pose estimation

  • Fully Metal Gearbox instead of 3D-Printed on Intake

  • New Intake rollers

  • Sector on Launcher Gear is steel instead of aluminum

  • Launching using vision, no longer using setpoints

  • Completly redigned climber to get trap mechanism higher above the lower lip

  • More refined amp trap

  • Using Elastic dashboard instead of Shuffleboard.

Day 75: Design Recap

 We compete in at the Houston district this weekend with both 3847 and 8515. Both robots have seen some upgrades to improve their performance. We worked to make our intake more inconsistent and remove the few jams and failure modes we saw at our first events. Software has been improved on both machines as well.

Feeding - When our robot is near the center line or beyond, it auto aims to a feed location and launches over the stage.

Vision Aim - We are using pose to aim to the speaker

Amp Launching - As a backup amp mechanism if our amptrap isn’t working.

Trap Climb at 118’s Field

Trap Climb on our Stage

Day 68: Design Recap

 We actually did this yesterday but forgot to add it to the blog.

Day 62, 63, 64: Belton District Event Recap



District Event Winner

Autonomous Award

Last weekend, Spectrum competed at the Belton District Event. We went 16-1-0 overall, and finished ranked 1st. We won every playoff match in the upper bracket and both finals matches. Thank you so much to our alliance partners 5414 Pearadox and 9054 Johnson City Joules!

We were honored to be awarded the first Autonomous Award in Spectrum history.

Failures and Fixes:

Failure: Qual 44 and playoff match 10. Cause unknown at the moment. Suspected RoboRio USB failure.

Qual 44:

  1. Our robot stopped suddenly 7 seconds into autonomous. Driver station read “Autonomous Stopped”

  2. We couldn’t move in teleop, although the RSL was blinking. We restarted roborio, during which we disconnected from the field, and we could finally move after roborio came back.

  3. After the match: Question box. Official logs couldn’t find a cause of the failure, resulting in no replay. (This was the one match we lost by the way.)

Playoff 10:

  1. Auton ended abruptly in a similar fashion to Qual 44, but driver station read “Autonomous Enabled.” Couldn’t move in teleop until after restarting RoboRio. 

Fix: Unknown. It doesn’t add up to be a CAN issue. Unofficial AdvantageScope logs abruptly ended when the robot stopped moving. It’s possible the JVM is crashing but we didn’t lose robot code light on the DS. The USB bus fully failing would explain why the CANivore disconnects and the logs stop writing to the USB drive. We’re going to keep working on it. Please let us know if you’ve experienced something similar.

Failure: Roborio SD corrupted itself. This has happened several times this year to other teams

Fix: We had a prepared SD card, so we just had to change team number and upload code. Was relatively fast before Finals 2.

Failure: CAN disconnecting and reconnecting briefly, causing the robot to stop for a few seconds in teleop in a few matches. 

Fix: Not sure, maybe it’s caused by the same USB roborio issue that was causing other failures, but it’s something to track back at the lab. (We’ve seen momentary CAN disconnects during driving on Alpha, PM, and Ultraviolet but diagnosing it has been hard without being able to replicate it). 

Failure: Intake top roller seemed to bend weirdly, getting the note stuck between top roller and polycarb front rail blocker.

Fix: We replaced the top roller and that fixed the issue. We probably need to make that blocker slightly taller so the note can’t get stuck there.

Failure: Launcher standoff broke

Fix: Moved it to another spot

Failure: Battery polycarb cover broke

Fix: Switched which bolt holes we use and added washers to the mounts

Failure: Bent lower intake rail. Didn’t affect performance as far as we could tell.

Fix: Replace it

Failure: Amp trap gearbox got angled and eventually stuck.

Fix: Adding a 10-32 in the bearing hole stopped the cantilever and fixed the issue. (Originally tried with 8-32, but it fell out)

Failure: Intake kept misfeeding, flipping notes vertical.

Fix: Eject and re-intake fixed it in match. Will add a polycarb flap or something to force notes to stay horizontal after being intake.

Controls update:


We ran our center 5 note auton every match. It went very well.


We did not use vision at Belton, but we were logging lots of information about tag distance, and estimated pose from the cameras as well as trying out 3 strategies for integrating camera data into odometry pose. In order to align to field objects using pose we have to be able to keep pose as accurate as possible throughout the match, and the data will be useful in determining patterns to see when vision is most helpful.

Code changes

As for code changes during the event they were mostly minor in order to avoid regressions:

  • changed pilot turbo mode to slow mode

  • adjusted launch angle for podium shot

  • LED changes

  • Changed operator climb sequence to automate feeding the note up to amptrap

Planned Improvements:

  • Build the redesigned climber. More about it can be seen in this post.

  • Get pose working, auto aim working 

  • Change sector gear reinforcements from aluminum to steel (we broke a few teeth on the polycarbonate plates.)

Pit Banner