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

Tuesday, March 5, 2024

Day 60: Week 9 Recap (Comp Week 2)


Day 56, 57: Katy Event Recap for Photon 8515



Gracious Professionalism Award

This weekend, Photon competed at the Katy District Event. To begin, we would like to thank our alliance captain the 9478 Robo-Colts, and our other alliance member the 9121 Mavericks. We would also like to congratulate the winning alliance of 118, 8576, 7616. 

Photon went 7-8-0 overall at this event, and finished ranked 18th before being invited by 9478 to join their alliance. After inviting 9121 to our alliance, we fell to the lower bracket after playing against the 2nd alliance. After that we won against the 6th alliance in the lower bracket and then fell to the 1st alliance. 

In addition to this, we were honored to be awarded the Gracious Professionalism Award and look forward to competing in the Houston District Event.

Failures and Fixes:

Failure: The intake that Photon has is the exact same version of the 3847’s intake, but the way that we move the note from the intake to the indexer and launcher is different. We have an extra 2x1 added to the inner frame where the note rides up against. This caused different problems that weren’t seen on the 3847 robot due to the note having to be more vertical to contact the index rollers. During the later qualification matches on Friday, we had a couple of issues that required us to fix the intake in different ways after each match. 

1st incident: We believe the intake roller became unbolted due to not checking them after every match to see if they were tightened which caused them to fall off at the end of the match after having issues with it during the match. 

2nd incident: During this match, we had trouble with the intake jamming and not fully intaking. We found out after the match that the hot glue that held the hub to the roller became detached. 

The glue holding hub to roller snapped, so we put a bolt to re-secure them together

3rd incident: Pulley got worn down thanks to the intake jamming

4th incident: Then the belt got worn down too because we didn’t replace it when we changed the pulley

Fix: To make sure this doesn’t happen in the future, we will be replacing the belt along with the pulley when the pulley is worn down or breaks. For our roller, to prevent the hot glue from getting dislodged, we put another screw into the roller to make sure this doesn’t happen. 

Failure: We have several autons, but we have one specifically which is designed to collect and shoot 4 notes into the speaker. During this auton in one of our matches, however, two notes got jammed in our intake which caused us to get a penalty. For the rest of the match, no matter how many times we tried, we were unable to eject the notes, therefore we weren’t able to score and collect any more notes during the whole match. One of the notes got stuck above our top roller while the other one got stuck below the first one (shown in the picture below).

Fix: To (hopefully) prevent this from happening in future matches, we are planning on installing a plate that is on the Spectrum 3847 robot. This plate will be mounted above the top roller to stop the note from getting stuck above the roller, and giving it a more direct path into the feeder. 

Controls update:

For Katy, we knew that we wanted to try and use our 4-note auton. The first time we ran it in Quals, we were only able to get 2 out of the 4 notes because we bumped into one of our alliance members. This being said,  our auton most likely would have worked if they lined up a little bit closer to the driver station. Then we had another chance to run our auton, but were only able to get 3 out of 4 notes because the robot didn’t move far enough to be able to intake the 4th note. We then tried running our 4-note auton again, but only got 1 out of 4 notes in the speaker because we had trouble with our intake and the note didn’t shoot out of the feeder. We were then able to run the auton for a fourth time but the note was preloaded too high and the robot didn’t get aligned with the speaker, causing it to shoot over. During Playoffs, we also ran our 4-note auton, however had a lot of trouble intaking and feeding the note. 

Planned Improvements:

  • Add some plates above the intake that hold the note in place when the arm is up to prevent the note from slipping out

  • Add wedges so only one note can enter horizontally in intake

  • Add a button where we can lock on the angle for each chain on the stage

  • Podium shot

  • Button to lock on directions for amp and subwoofer

  • Add shaft so if we get one hook for climb it will slide over and other one will catch

  • Visual feedback of a note through leds

  • Get the 4 note auto working

And just a fun fact: For the third year in a row at Photon’s first event, we won Gracious Professionalism!