FRC 3749 Team Optix | 2023 Charged Up OA Build Season Thread

Hello FRC Teams! Welcome to Team Optix 3749’s first build season thread! We are extremely excited to be joining in with all the other teams on Open Alliance on our progress during this build season. We will be posting shortly with meeting recaps throughout the rest of the build season.


Team Optix Electrical Recap (Week 1 & 2)

Week 1
We split our Electrical department into three teams; CBA, Wiring, and Board Design. Due to minor setbacks from preseason, we had to make several design changes to the initial electrical board, but we were able to finish making mock ups for the final design this week. We decided not to use a diamond cut board to lower the robot’s center of gravity, and instead create a solid board to do so. The Roborio’s power light was red and couldn’t image properly. We tried to clear the issue by cleaning the ports, as specified by the NI forums. However, that didn’t seem to fix the problem. So we contacted NI, who forwarded us to Newark for replacement.

The team that worked with the computerized battery analyzer this week tested batteries. We had 5 batteries and verified that they were good enough for State comps and could be used on the robot. If not, they needed to be replaced.

Wiring laid out the components we knew was going to be on the board and mapped out wiring for it. We made wiring diagrams for the main board on the base of the robot and figured out how to connect wires to the claw. For the CAN wiring we decided to use is a daisy chain topology for the drivetrain and star topology for the claw and arm network. We also figured out which energy chains we wanted to use and decided on a linear for the arm and tri-axis for the shoulder.

Board Design
The Tuesday after Kickoff, we were still debating the robot’s shape, so the board went through a lot of changes in dimension and shape. Board Design team needed to adapt to every change in structure and make a viable board for them. In the end, we received the finalized dimensions and created our final design.

Week 2
This week our department was split into four groups; Board Assembly, LEDS, Organizing, and CBA.

Board Assembly
After receiving the final-cut aluminum board, Board Assembly worked to mount each component according to our final design. We spent multiple trials trying out different ways to screw in bolts to the mounting holes. We needed to make sure our board was clean, accessible, and it wouldn’t pop the game elements after driving over them. We concluded that screwing in the components would make our robot harder to access for Pit and decided to use double-sided tape for every component other than the PDH.

LEDS team worked on a design to put LED lights on our cart and possibly our robot.

We recently ordered a new toolbox for the department named Walter. With our free time, we worked on filling the box with all our department’s essentials. We labeled each compartment of the box to make sure we could find what we needed easily.


Team Optix Build Recap (Week 1 & 2)

Week 1

Our Build Department was split into a couple different teams. For the robot itself, there are 2 main groups: arm and claw. Our swerve drivetrain was completed very early in week 1, so the main focus is designing the two subsystems. By the end of the week, early prototypes and a few different CADs were completed.


Using our in-house laser cutter, the claw group began prototyping a couple different designs to hold both the cone and the cube. The main design was to use compliant wheels for compression and have one claw for both elements. Here are the pictures for both of the early prototypes.


The arm group also created CADs for a few different designs. We explored a double-jointed arm, triangular double-jointed arm, z arm, and some telescoping designs. A decision matrix was created to decide which arm to pursue first.

The double-jointed arm was decided on. The biggest change made to the original design of that was the implementation of a 120o bend in the “bicep” of the arm to improve balance of the arm when stowed away (so more weight would be distributed equally on both sides of the fulcrum point).

Week 2


The design for the claw was finalized and fully fabricated and assembled, including motor placement. It was tested and seems to reliably intake both the cone and the cube. The motors are not wired up yet but it seems like a promising design. The design is also very modular (attached to the arm with only 3 bolts) so we will continue testing new prototypes.


We finalized the design for the arm and created CAD for the custom gussets, which we got fabricated by our machine shop sponsor (Clint Precision)! Assembly of the arm began and continued throughout the week. By the end of the week, motors and chains were attached so we could get a full visualization of motion for the robot.


The end of Week 2 marks a completely assembled robot. This is our first iteration of our robot this year, and we have already begun researching and prototyping new designs for both subsystems. We are extremely proud of our progress so far and expect to make even more improvements and upgrades to our design.


Team Optix Software Recap (Weeks 1 & 2)

Our software team is composed of approximately 20 members, which is a record high! In the past, our robot code would be up to a small number of people and it’s especially important to us that all people who want to be involved can be involved. Thus; our robot code and project group structure. The first thing we did was split up into four software teams with 4-6 members. Each team has a “leader” who organizes workflow and makes sure the weekly deliverables are met. We assigned each team to a subsystem on the robot and a few side projects. When planning this structure, we didn’t suspect there to be few subsystems on the robot, so we have a swerve team, a claw team, an arm team, and a vision team.

This is our first year working with a swerve drive so getting fully reliable teleop and autonomous control is that team’s main priority. They’ll also be working on auto balancing on the charge station through the use of gyro outputs. We’re researching different path drawing softwares, such as FRC PathPlanner and Code Orange’s AutoBuilder. Our swerve drive was unfortunately devoid of absolute encoders so we worked on using the built-in NEO relative encoders and manually adjusting the initial position of each module. We experimented with using WPILib’s example code and other open source materials but they produced undesirable results that we weren’t able to debug. We thought it would be best to wait for the absolute encoders to arrive so we attempted coding the swerve drive from scratch in order to better understand how it works. By the end of the two weeks, we were able to map the joystick to the angle of each module and drive omnidirectionally.

The vision team ran PhotonVision locally and tested its AprilTag capabilities in comparison to the limelight. Perhaps due to the limited resources of the limelight, PhotonVision’s object detection was a lot more reliable and user friendly. The vision group is focusing on researching and implementing photonvision for both reflective tape detection using the limelight and April Tag detection. We discussed possible configurations and camera setups, one idea being two cameras on the robot. One being the Limelight to detect the reflective tape, and the other being a webcam running on the same raspberry pi as the LED panel. We also worked on creating utility classes that encapsulate PhotonVisionCamera and Limelight objects in order to be able to access the same instance in different subsystems.


The arm team researched inverse kinematics and its implementation in FRC. We also worked on simulating different designs of the arm as the design wasn’t finalized until recently. By the end of the two weeks, they created a BruteInverseKinematics utility class that iterates through the degrees of motion of the degrees of freedom on the arm to find the angle of each joint. The arm subsystem was tasked with simulating different arm designs and developing FRC Dashboard to replace ShuffleBoard.

The claw team worked on the LED panel and their robot code, which is the simplest of all subsystems. We also worked on developing code for detecting the colors of the cube and cone from a REV color sensor. By the end of the two weeks, they got their PR reviewed and also got our team logo to scroll across the display. Below is an image of the LED panel displaying my name!


20 programmers is impressive (and insane), good luck!

Did yall spend anytime in the offseason learning about git branches and merging?


Bonkers progress, and I love the notebook sketches! Keep up the good work.

1 Like

Looking great guys! Must be nice to have so many people interested in programming! I’m the only person on my team doing programming this year.

1 Like

Yeah! We integrated our java and git training through our java training repository. You can find all our training resources and weekly preseason blog posts at Software | Optix Blog (


Awesome - thanks for sharing your training! We are approaching a point where we need to really start branching and merging for our army of programmers too. Really we probably needed to do it 4 years ago, but better late than never.


Team Optix Electrical Recap (Week 3)

This week was pretty chill because we were waiting on items to be delivered. Our main goals this week were to assemble the electrical board that would be mounted on the side of our robot and crimp battery wires to be used on the robot. We used any free time to clean/organize our tech room.

We noticed many parts and components were being lost these past weeks, costing us time and money. We established a sign-in system for any tools or components being moved from the tech room to ensure we will not lose any more important pieces. We recommend this system if your team has a lot of members or if you find it hard to keep track of tools. Just keep it simple so it doesn’t get too tedious to check things in and out.

We also encountered a fatal flaw with our hydraulic battery crimper. It began to leak fluid, rendering it unusable. We ended having to use the manual crimpers to crimp the battery wires, which was a very unpleasant experience. Today, Chinmay brought a new hydraulic crimper, which allowed us to complete all our battery wires on the same day. Two members, Deva and Varalu, performed an autopsy on the broken hydraulic crimper, and the culprit was a broken O-ring. So much of the fluid leaked, that we’ll have to buy more hydraulic fluid along with the new O-rings to fix it. In the meantime, we’re using a battery crimper from Pittsburgh.

After crimping all the battery wires, we put heat-shrinks over them, preparing them for use on our batteries.


Running Robot! (Week 3)

Here are some videos of our robot running!

This is our initial swerve drive demonstration. Since this is our first year using swerve, this is a huge milestone for our team.

Swerve Test - Team Optix 3749 Build Season 2023 - YouTube

A major concern early in our design process was tipping. We believe many robots this season will suffer from “tall robot syndrome.” We got especially worried after seeing the high CG issues that the 2023 Everybot faced. This is our initial spin test. Sure enough we did tip over when we spun at full speed, but only when the arm falls back.

Spin Test (without arm brake) - Team Optix 3749 Build Season 2023 - YouTube

The arm fell over because the motor brake wasn’t set. We set the motor brake and ran the test again with positive results. We haven’t tipped over since.

Arm Brake Test - Team Optix 3749 Build Season 2023 - YouTube
Spin Test (with arm brake) - Team Optix 3749 Build Season 2023 - YouTube

Once we built confidence with the initial tests, we were ready to run at full speed. The robot showed excellent stability at high speeds.

Swerve Speed Test - Team Optix 3749 Build Season 2023 - YouTube

All of the driving up until this point has been with robot-relative controls. However, in matches we obviously want field-oriented controls to take full advantage of swerve. This next video is a demonstration of field-oriented swerve driving. For our team, the jump from a stationary robot to a moving robot-relative swerve robot was WAYYYYY bigger than the jump from robot-relative to field-oriented. Props to the software gang for the insane progress and learning.

Swerve Field Relative Test - Team Optix 3749 Build Season 2023 - YouTube

Now we let the robot loose. We handed the controller over to our driver and told him to break the robot. He did a good job lol. Two main issues became apparent: our encoders have drift and our gyro randomly changes its zero position. Software is currently looking into that. But on the bright side the robot is super stable and super fast!

Swerve Intensive Stress Test - Team Optix 3749 Build Season 2023 - YouTube

A few bonus vids for your viewing pleasure. We plan to use flippy bumpers this year after spending hours in the hotel room at worlds last year fixing our bumpers and struggling in pit changing alliance colors. We also upgraded our cart with some fire LEDs!

Flippy Bumpers - Team Optix 3749 Build Season 2023 - YouTube

RGB Gaming Cart - Team Optix 3749 Build Season 2023 - YouTube

At the moment, the only motors that are connected are the swerve modules and the two shoulder joint NEOs. We are currently waiting for crimps to arrive so we can wire the rest of the arm and claw (FedEx claims a Monday delivery but we’ll see). Expect to see videos of arm testing and intaking by the end of the week.


Team Optix Build Update (Week 4)

With our primary design of the robot basically done, we are really prioritizing experimenting with new ideas right now. This year we were pretty successful with modularity (the claw can be removed entirely with 4 bolts and the arm can be removed with 4 bolts as well). Thus, we’ve been trying out a couple new claw designs.

The first claw design we experimented with was similar to the claw from Team Vector 8177. We used PVC and polyurethane belting for maximum traction to grip the elements but minimum weight (so it doesn’t weigh down the arm).

Picking up the cone
Picking up the cube

Our second claw is a grabby claw design (named the Mr. Krabs claw), designed to use one motor for both field elements. We haven’t tested the compression completely yet, as we are still fixing up flaws of the design (such as belt tensioning and spacing).

We also finished the reversible bumpers for this year! This is our first year making reversible bumpers and we are pretty happy with them. (ignore the lack of numbers lol the vinyl did not stick so we are working on touching that up)

Reversible Bumpers

We’re also working on a backup robot, but don’t have too much done other than the electrical board on there.


did our intake end up working for yall :eyes:

W comp guys, great driving out there, it was a pleasure!



Team Optix Electrical Recap (Week 4 - SDR)

(Definitely not 1.5 Months Late)

Week 4

The Electrical Department’s primary goals this week were wire management, testing, and crimping batteries, as well as creating an electrical board for the second robot. We mainly tried to ensure that our primary robot was finished in order to allow the software team to test as much as possible, while also working on a secondary robot (more on that later). This week has been a lot of collaboration with Build, and these two departments are integrating very well compared to last year. Additionally, the team has been working consistently on organization and cleaning the storage rooms.

Contingency Plan

We have been working on a contingency plan for all departments. Last week, we drafted a contingency plan for electrical pit members, and this week we started to implement it into the final contingency plan for the primary robot.


The CBA team continued to validate batteries for competition use starting with the new batteries that were recently received. In the middle of this week, we finished testing the newer batteries and resumed testing of our older batteries.

This week, our order of 4 AWG lugs arrived and we continued crimping batteries. Last week, our supply of 4 AWG lugs ran out because we rushed crimping and sacrificed precision in the process. With the new shipment, we took our time crimping batteries and focused on quality over getting it done quickly.

Side Board

For mounting the Radio, Build helped us with making a Side Board where the Radio, RSL, and Switch could go.

During our paper design of the sideboard, we were only given a 5-wide by 10-tall inch space to make our board. After a bit of back and forth and research, we were barely able to get everything to fit in. Afterwards, we cut our board and mounting holes (we did redo 2 of them because it was cut wrong) and started to velcro the board to both and mount the parts. We then ran into an issue due to the switch and radio mounts being too big for our design. However, it turned out the CAD had misinformation and when the mounts were printed everything ended up fine. We then made the holes on the robot and holes on the sideboard to attach to the bot without it falling off.

Wire Management

The arm of the robot is connected by chains for movement and directionality. However, any wires that were near the chains were at risk of becoming shredded. So, we came up with the solution to zip-tie the wires to the support beams on the robot. We also zip-tied the wires together that are near the motors so they don’t get shredded by the gears.

Second Robot

Due to the unanticipated speed of our progress on the primary robot (thanks to the dedication and hard work of members from all departments), Team Optix has decided to develop a second robot for the purpose of testing subsystems, having a possible backup in case the primary robot is not in an ideal condition, or just as a defense bot for practicing. This robot will be using the same drive base as last year’s robot.

Board Designing for this robot started last week, and we finalized the design this week. Since we are reusing Venom’s (2022 Robot’s) drivetrain, our board is much more smaller and limited than our primary robot. We have decided on a size of 15" by 17". On top of this limited space, there was a beam that went across the chassis of the board to help stabilize it. To overcome this challenge, we decided to remove the support beam and mount the electrical board from the bottom in order to maintain stability.

For reference, we cut up a wooden board that was approximately the same size as the board we were going to use for the actual drivetrain. After the draft for the board was finished, we had to ask Build to start machining a board for us to use.

Once Build had finished machining our board for the second robot, we started to mount the components onto the board. We had to do this quickly so the software could begin testing

The shape of this board is very different from previous boards that we have done. Everything will be very close together making wire management really hard, especially between the PDH, breaker, and battery. The four motors towards the end are all for the elevator mechanism the robot will use. The drivetrain which we are reusing from last year uses Falcon 500s.

While wiring the robot, many of the wires, especially the CAN wiring were really close to the chain used by the drivetrain. To avoid any complications, we used zip ties to make sure the wires would not interfere.

Week 5

As the official build season is coming to an end, we are still actively working on trying to finish the second robot, as well as working on wire management for the first robot.

First Robot Wire Management

During this week, we finished wiring up the motors for the arm and claw, allowing the robot to actually move and be able to pick up pieces. This allowed software to start testing values for the robot.

In order to make our lives easier at competition, we focused on redoing some of the wiring extensions that ran throughout the robot to future-proof it. One of these was CAN wiring, if it was in a precarious location, they would have to be resoldered if necessary to improve cleanliness. Since the majority of the wires are near the PDP area, we had to focus on organization in that area to help pit members.

Second Robot Wiring

For the Second Robot, we focused on wiring the drivetrain in order to get it functioning. Some members soldered CAN wiring, while others worked on trying to mount all components of the board as quickly as possible to allow our software team to begin testing with Limelight.

Although we are mainly using the second bot for testing, we are still staying true to organizing the wires on the board of the robot in order to allow for maximum efficiency, which meant soldering CAN wiring.

Week 6 & Comp Season

During the rest of the competition preparation season, we finalized our wire management, finished CBA testing on batteries, added LEDs, and conducted pit disaster training for our pit members.

When analyzing our six competition batteries, we noticed that our 2 battery was underperforming significantly, but was still above the 11.5AmpHrs recommended threshold for competition batteries to meet being at 12.2AmpHrs at the cutoff. We still continued to use this as a competition battery as the battery also entered service this year.

(Uploaded as GIF cause they wouldn’t let me upload it as a video :frowning:)
Shoutout to Colin from our electrical team for soldering and wiring these LEDs!

See you all at San Diego and Aerospace Valley!



(very late post but here it is, worlds and OA recap coming soon)

Team Optix SDR & AVR Recap (Houston Bound!)

Over the past two weeks, Team Optix 3749 participated in the San Diego and Aerospace Valley Regionals. At San Diego, we had a qualification record of 4-5 placing us as the 29th seed, where we were invited to Alliance 2 joining with Team 599 The Robodox, Team 4738 Patribots, and Team 4141 Monarch Robotics where we became Regional Finalists! We had 3 days before we participated at our next regional, Aerospace Valley, where we had an improved record of 7-5 placing us as the 15th Seed. We moved up to become the 8th Alliance Captain, joining Team 4419 Team Rewind and Team 5012 Gryffingear, where we were unfortunately eliminated in round 2 after a very close match against Alliance 5. In the end, we were presented with the Regional FIRST Impact Award, qualifying us for the FIRST World Championship! We couldn’t be more overjoyed to represent Del Norte High School and San Diego for the second time in our team’s history!

Robot Performance

At the San Diego Regional, our performance was unfortunately mixed. In several matches, we had some mechanical failure in the arm. However, there was a lot of promise. In many matches our robot had a great showing, scoring up to six pieces per Teleop cycle and one piece in auto, coming incredibly close to two pieces in auto. Additionally, in the matches where the arm was not working, we showcased world-class defense thanks to our high movement speed, swerve drivetrain, and an incredibly talented driver in Zack Keller. We brought team Clockwork Oranges, the first seed of the Orange County Regional, down to only two Teleop cycles in an entire match. Such a stellar defense caught the eye of team 599 Robodox. After qualification matches, Robodox chose us as their second pick for the playoffs. Since we were selected as a defense robot, we removed our arm and added weight making us even more effective. Combined with the first pick team 4738 Patribots, our alliance became finalists at the San Diego Regional. With two days between San Diego and our next regional Aerospace Valley, there was a lot of work to do, but we believed that with a few fixes, our robot could be better than ever.

Coming into the Aerospace Valley Regional, we had many changes to our robot. From a faster arm, sturdier beams, heavier weight, more reliable autonomous, and better vision alignment, we were ready. Unfortunately, luck was not on our side on the first day of qualification matches. From a match with a no-show and a robot that couldn’t connect, to being in an alliance with team 4414 Hightide on the only match they were broken all weekend, we just couldn’t get ranking points. Despite consistently hitting seven Teleop cycles per match and 1 in auto (it’s so close to picking up the second piece!), we were ranked 30th out of 36 going into day two with eight out of twelve matches played. However, we were not deterred, as we knew we were good enough to be a big player in the playoffs. On day two, we did not have a single robot issue in all matches we played. In our final four qualification matches, we got thirteen ranking points out of a possible sixteen. We moved up from 30th to 15th rank, and after alliance selections, we moved up to become 8th Alliance Captains and chose 4419 Team Rewind and 5012 Gryffingear to be on our alliance. We came up with a loss against the 1st Alliance in Match 1 and had an extremely strong battle showing against the 6th Alliance, with a last-second top link score and triple balance, however, it wasn’t enough as we lost by 2 points.

-Noah Simon


At the San Diego Regional, we used our newly created scouting app to coordinate and collect match data. This data was in turn used by our drive team to make the most accurate strategy decisions possible. Our system is split into two sections, the scouting app and the web app. On the scouting app, members used a grid-based system to mark scoring location and endgame capabilities. On the web app, we collected data using a QR code-based system and heavily utilized spider charts to make match predictions and strategy calls.

As for the Aerospace Valley Regional, we’d like to thank Team 4414 HighTide for letting us use their scouting system and app for the competition. Additionally, we’d like to thank Team 3512 Spartatroniks for participating in the scouting alliance as well. Both teams’ help was greatly appreciated in making sure we had plenty of data to supply to our drive team, despite fewer team members being at the competition. We were also able to use said data in our alliance selection as the 8th Alliance Captain.

We hope to expand and improve upon our scouting app and system, and collaborate with more teams in the future!



The San Diego Regional was a huge learning experience for the Mechanical members of our team. From the Friday practice day, we sprung into action, replacing the beams of our drivetrain and strapping weights onto our robot to decrease tipping. We didn’t experience much tipping when driving at home, but getting crashed into by other robots was another story. We ended up replacing our original 1/16-inch wall beams with 1/8-inch thick walls, increasing the weight as well as the structural integrity of our base. Throughout the competition, we took the arm on and off quite a few times. We were grateful for the modularity of our robot at this point, as we only had to take out one axle to take the arm completely off. We had to replace a few different motors due to burnout and smoking (which we would later learn was due to a lack of software current limits).

We made it to playoffs on the second-seeded alliance, and as soon as our drive captain shook the alliance captain’s hand, the Mechanical pit team got to work immediately. We took off our arm because we knew we would be most effective as a defense robot and started adding weight to the base of our robot. We got a lot of help from Patribots and Robodox, our gracious alliance partners, who helped us gain 20 pounds even after removing the arm. Though we performed impressively, we had to be subbed out because our front left drive motor on the swerve modules burned out. We are extremely grateful for the great playoff experience with our alliance partners.

Sunday night after the award ceremony, we drove directly to our president’s house. From the hours of 9 PM to 11 AM, we went straight to work (with a whole lot of energy drinks and sugar). We needed to fix the play in our arm, so the first thing we analyzed was the chain. We added a spacer between one of the sprockets and the beam, we tried to tension the chain more, we experimented with direct motor mounting (no chain), and we also experimented with various lengths of chain. We cleaned up the placement of our weights and replaced damaged parts. We fixed broken parts as software and electrical tested things out. We replaced motors and added hubs to both sides of axles (2 mounting points) to prevent bent or tilted axles. There was not a single second at our president’s house where someone wasn’t working on the robot! It was truly a thrilling and exciting experience as we all skipped school and sleep to get Viper into shape. By Wednesday morning, we were ready to head to Aerospace Valley.

AVR was off to a good start on Thursday (practice day). But we saw the structural integrity of our main two support systems that hold the entire arm was extremely weak, so we took the arm off again (by this time it was habit) and replaced the REV beams with McMaster beams. At the end of Thursday, we felt confident in our capabilities. Throughout AVR, we had very very few mechanical fixes needed. We consistently completed our pre-match checklist and had virtually no issues. By Saturday, we made the playoffs and performed well! Our robot was consistent and mechanically sound.

-Adrita Chakraborty


At San Diego, our electrical team encountered some but not many issues, after we made adjustments in wire management and battery CBA testing to ensure that we didn’t have the same issues we had with last year’s electrical with brownouts and hard-to-reach wiring. On the practice match day, we encountered no issues with the exception of a battery brownout with our 2 battery at the end of the match, the cause of the brownout was a miscommunication between electrical members as they were switching out, the battery was switched out in the standby queue while they were still testing and not changed out right before the match began. However, this particular battery was our second worst-performing battery according to our CBA testing, even against our older batteries, therefore we decided to play it safe and retire the battery from match use. We also had a discussion with our team that night to ensure that everyone was on the same page with communication and battery switchouts.

2023CHARGEDUP_3749CompData.pdf (233.9 KB)

The following day with qualifications, during our second match, our robot smashed into the dividing wall causing our main breaker to be tripped. Upon further inspection after the match, we found that the ground battery wire to the PDH had disconnected as our counterweight fell onto it. The wire strands on the ground wire, and upon further inspection the positive terminal wire, were both twisted and bent, not allowing the Wago Terminal to get a firm grip on the wire, so we had to quickly re-strip. Our arm had also broken that match, meaning we only had about 5 minutes to quickly diagnose and fix the issue. We finally got the wires in when we were in queue for our next match. Other than that, we encounter no other electrical issues during qualification matches. Going into playoffs, our robot was converted into a defense bot, meaning a lot of our electrical system had to be taken off. Our absolute encoder wires were superglued on the RoboRIO ports, and we failed to secure one of them after the removal of the arm, which then got shredded in one of our swerve modules in our first playoff match. The RSL wiring was also loose so we replaced that as well. We didn’t face any electrical issues for the next match, however in match 3 our swerve module wasen’t working, and when removing the encoder cable on one of the NEOs was damaged, meaning we had to replace it, which caused us to be taken out of playoffs for the rest of the regional.

In preparation for the following Aerospace Valley Regional, we worked mainly on reattaching and organizing arm wiring, crimping damaged encoder JST connectors, and standardizing our Anderson Powerpole Housing ordering as that became an issue when switching out NEOs. We didn’t have the chance to redo CBA testing as we only had a 2-day turnaround time, however, we did spend 6 hours trying to diagnose a CAN fault on the CANcoders, only to find out that they work fine and to solder all our CAN chain back (Yayyyyy).

At Aerospace Valley, we only had one issue during the competition which was random disconnections with the driver station for 10 seconds every few matches, at the end of the day we hard-wired to the Radio and spun the robot around, which didn’t end up breaking the robot, isolating that it wasn’t an Ethernet or RoboRIO issue, just a bad radio which we switched out. We experienced no other issues for the rest of qualifications and playoffs.

In preparation for the FRC World Championship, we are cleaning up our wiring, and rerunning all our CBA testing, to help sustain the durability of our electrical system, and maybe re-adding on LEDs.

-Alex Zhang


At our two regionals, we came up with many ways to improve our software between matches that we couldn’t have thought of in our limited testing environment back at home. Although we tried to address some of the issues we predicted we’d face on the field prior to the event, in the stressful and high-paced climate, we had to adapt to what worked and what didn’t through a process of trial and error. We faced issues with button bindings, gyro resetting, vision, etc that we resolved by quickly making robust code.

I know I’m a bit behind in keeping up with our Open Alliance thread (Sorry!), so I’ll make a quick rundown of our core features of how our code works. We use PathPlanner for autonomous and we run PhotonVision to detect AprilTags for pose estimation and pose-driven alignment. For alignment, create a goal pose translated from the AprilTag pose and drive to it using PID loops. At home, we were able to run a reliable 2 piece and engage on charge station auto, but since we were in a rush to finish our auto the day before competition, we didn’t have time to debug PathPLanner’s alliance mirroring so we set up two sets of paths for the red and blue alliance. We wanted to use vision in order to account for inaccuracies in odometry. For our double-jointed arm, we took heavy inspiration from Mechanical Advantage 6328 and implemented the use of PID Controllers, 449’s FeedForward model, inverse kinematics, and spline trajectory generation to control our arm. This allowed us to easily generate paths for our arm with intermediate waypoints and greatly improved the accuracy of our setpoints. We set up a trajectory visualization software to prevent us from running paths that we know will break our robot. We also set up logic for moving between nodes and avoiding obstacles within our MoveArm command. This was by far the most challenging subsystem we’ve coded as a team and we’re proud to say that the code we wrote for our double-jointed arm was completely reliable!

At the San Diego Regional, as soon as we connected to FMS during our first practice match and we opened our PhotonVision camera steam, we noticed that the pipeline had switched to reflective tape rather than the AprilTag pipeline. Thus we weren’t able to use vision to align as we didn’t have the pipeline switching redundancy set up in our code. After the match, we saw that the pipeline we had originally tuned during the robot calibration was gone and that the camera had lost its 3D calibration. It was as if the camera had been reset! Before the match, we tested the AprilTag pipeline and it was working fine. We talked to the FTA in charge of FMS and he too was stumped by this happening. We ended up having to retune the brightness of our AprilTag pipeline at a location with similar lighting to that on the field and recalibrate the camera using a borrowed PhotonVision calibration paper from team Spyder 1622 (Thanks!). Because the field we had at home was just slightly inaccurate to the actual game field, the waypoint that went to pick up the second cube outside of the community was inaccurate. We had to tune it between matches and we were unfortunately only ever close to picking up the game piece. We also faced issues with vision alignment goal pose determination according to the alliance, peculiarly, it only worked during auto. We didn’t have time to debug this at the competition so we decided to stick to manual driver alignment during tele-op. As a team, we decided to remove our arm to make the robot less top-heavy and more tailored for defense. We created a branch that only had the swerve drive. We improvised an auto we rammed into the hybrid node and successfully scored a piece that was placed on our drivetrain before scoring the mobility points.

In the following two days we had between the Aerospace Valley and San Diego regional, we left our sleep schedules behind and got to work code code coding! The intake on our arm was tilted downwards so that the cone would be shot at a downwards angle instead of a completely horizontal angle. This meant we had to tune the center of gravity for our elbow and move all of our setpoints. The cube didn’t fit in our original stowing setpoint so we made a new setpoint to account for it. Other than that, we worked on fixing vision alignment by flipping the direction and heading of our goal pose according to whether the robot was running autonomously and its alliance. (Quick side note: at 2:00 am we ran the robot into our robot cart that had our dinner on it and we got fried rice in the swerve modules! Some could say Viper was a little hungry). At the regional, the goal pose flipping that we spent all night working to fix didn’t work on the practice field. We ended up starting from scratch and fixing it there. In the match queue of our qualification match, we tested our arm with its new chain tensioning and it went in the complete opposite direction, almost smashing our operator console and laptop. The REV Through Bore absolute encoder on our shoulder joint was reading an incorrect distance and after the match we switched to using position (Which reads on the range of 0-1) by converting it to degrees. We finally got our autonomous tuned to the game field by the end of our qualification matches and scored the two-piece and engage points!

We learned a lot from playing matches and talking to other teams, so in preparation for worlds, we’re going to use piece alignment with a colored shape pipeline in PhotonVision to improve the reliability of our autonomous. Thank you to µ-Botics 7157 for the idea and Spyder 1622 for letting us test on their practice field.

-Rohin Sood


At the Aerospace Valley regional, Team Optix won the most prestigious award in FIRST, the Impact Award. This award is given to the team that emulates first values and morals the best in the community, and we are extremely proud to receive this honor. Our outreach department this year exceeded their expectations as they planned multiple initiatives and strengthened our impact on a very large scale. Our impact was definitely recognized by the judges, as they were extremely proud of us during the impact interviews and the judging sessions, fascinated by the global scale of impact we have done. This is our second time winning this award and thus, qualifying for the world championships. This accomplishment has fired our team up and serves as motivation for us to build up our impact even more!

-Hema Rajendran


We would like to thank our alliance partners Team 599 The Robodox, Team 4738 Patribots, Team 4141 Monarch Robotics and Team 4419 Team Rewind, and Team 5012 Gryffingear for some intense and exciting playoff runs! It was amazing playing with all of you! We would also like to thank all the FIRST volunteers at San Diego and Aerospace Valley for helping to run such smooth events for all teams! See you all in Houston!


Adrita Chakraborty
Thien-Nam Huynh
Hema Rajendran
Noah Simon
Rohin Sood
Alex Zhang @alexzhang3749

Rayyan Darugar
Lucy Niu


Fun fact: we got those steel weights from facebook marketplace from a slightly sketchy vendor

Awesome playing with you guys! Im so glad we got to again on Curie :slight_smile:


Demon defense at SDR, couldn’t have done it without you, major congrats on Impact, good luck next season Optix!


Bravo Team Optix on a awesome season capped with winning well deserved Impact award at AVR and a trip to Houston. Thanks for always operating with the highest of GP.



Team Optix World Championship & Season Recap

This is a look back at Team Optix’s 2023 World Championship and Season! We couldn’t have been more proud of the growth and success this season!


At the world championship, we played 10 matches in the Curie Divison, with a record of 4-6-0, and ranked 56th out of 78 total teams. We reached our highest offensive output with an average EPA of 38.7. We did not get chosen for playoffs.

-Alex Zhang


There were not many fixes needed throughout our matches! The biggest issue we ran into was in the shoulder joint of our arm. We used REV MAX Pattern tubing this year, but we found that there were many areas where the metal at our attachment points was being shredded due to wear and tear. We had fixed this in various places throughout our regional competitions, but in Houston this wear and tear caused a lot of extra play in our shoulder joint. During lunch on Friday, pit crew took off the arm and added more bolts for extra security between the hub and the metal to prevent this play. This made it reliable enough for scoring in the next few matches.

Other than that, we are very proud of the reliable robot Viper became over the season. At the conclusion of the season, we have almost replaced every beam on the robot, with beam integrity being our largest mechanical problem. We learned from other teams at World’s that we should be using spacers to prevent caving of the metal, which is something we will definitely implement in the future!

-Adrita Chakraborty


On the electrical side of things at the Worlds, we had very few errors overall. Coming into worlds, we had revamped our wire management to be far more streamlined, and as a result were confident about it working. However, on our first match, one of our wires on our arm joints resulted in too much tension, disconnecting it from our Anderson Powerpole connectors and disabling our arm for the match. However all that was required to fix this was quickly crimping the connectors, along with some redoing wire management on the arm. We also faced some issues with CAN management around our shoulder joint, resulting in us resoldering some of those connections to allow for greater slack.

However, we did face some hardware errors pertaining to our Rev PDH and our RoboRio 2.0. Neither of these negatively impacted our performance, but certainly were issues to look out for in the future. On our PDH, we noticed that some of the breaker lights were flashing, which typically only occurred when the wires are in but the breakers are not. Talking to Rev employees at the booth explained that this was due to a chip within the PDH breaking. This would not affect our performance, rather just result in us being unable to access certain numbers from these ports. This seems to be caused by use of the ports, and is just natural wear and tear. Rev mentioned a potential PDH repair service, where this issue could be fixed, so we’re looking out for that! For our RoboRio 2.0, we were noticing similar errors to what we had with our RoboRio 1.0s the previous year: the power light turning red, and having multiple issues with our status lights. Eventually, our power light returned once again to be red, however we had not necessarily deduced a cause. Our ports were sealed completely, and thus it could be an internal issue that occurs with wear and tear.

At Houston, we had very few errors, and we found this to represent the improvements we had implemented throughout the season.

-Varalu N

Reflecting on the season, we had significant improvements on all fronts, improving our reliability, training, and creating a sustainable culture within our subdepartment, however, we still have many improvements to make over the course of next year.

We had quite a few electrical incidents, which some incidents somewhat or severely hindered our performance this year, all of which I’ve put down below:

San Diego Regional

Match, Time: Qualification Match 4, 0:20 left in Teleop, Remainder of the Match
Issue: Main Breaker Trip on contact with alliance barrier
Cause: On contact with our alliance barrier, the 10lb dumbbell counterbalance fell on the main battery ground wire, pulling it out from the PDH WAGO terminal and tripping the main breaker. Upon further inspection, both main battery wires going to the PDH were loose, wire strands messed up, and unable to reinsert into the terminal.
Pre-Match Factors: Counterweight was not properly secured, and battery wires to the PDH were tampered with during pit training
Solution: Securing the counterweight properly, later moving the weight, and restriping both battery wires. In the future, we should ensure that no external factors can pull the battery wires out of the PDH, as well as not tampering with the main battery wires in the first place, as it wasn’t helpful in pit training and bent the wire strands which the PDH WAGO Terminals could not hold on to.

Match, Time: Qualification Match 13, 1:56 left in Teleop, Remainder of Match
Issue: Battery Brownout
Cause: Shoulder gearbox jammed, causing the motor to stall, and the battery to brownout
Pre-Match Factors: Bad Gearbox, no protection set against stalling the motor.
Solution: Nothing electrically could have changed the outcome of what had happened, adding ways to disable motors when jammed to prevent a stall would be helpful, but that isn’t an electrical issue.

Match, Time: Playoff Match 3, Time Unknown
Issue: Wire jammed in swerve module wheel, turning inhibited
Cause: When removing the arm from our robot and converting to a defense bot, didn’t secure down the absolute encoder cable, allowing for the cable to move and get caught in the swerve module.
Pre-Match Factors: Wiring was somewhat of a mess, making identifying the loose wire more difficult, during the build season we did rush our wiring management to allow for the robot to be worked on sooner, which came at the expense of making a clean system. There also weren’t any protective covers made for our swerve modules.
Solution: The wire wasn’t essential as we weren’t using an absolute encoder for anything for the remained of the regional, we removed the cable and replaced it at a later date. The main fix is making proper protective cases for our swerve modules, preventing any debris from entering our electrical board, and vice versa. Wire management was also addressed, we reworked our cable management after SDR and AVR to be more clean and streamlined, next year wire management will be emphasized more rather than getting the work done.

Practice Match, Outside Match Play, and Non-Essential Issues

Match, Time: Practice Match 3, 0:30 left in Teleop, Remainder of Match
Issue: Battery Brownout
Cause: Battery wasn’t switched out right before the match, months later found wire strands loose and uncovered in the Anderson SB120
Pre-Match Factors: Miscommunication on battery switchouts during the switch of pit shifts, match battery also showing signs of weakness from CBA testing, crimping quality control
Solution: The main problem was the communication and misunderstanding between our pit members, which we talked to all of our pit members that night to get them all on the same page. We also took the battery out of service in an abundance of caution. Quality control is something that we really tried to emphasize this year, especially for batteries, however, this one slipped by us. Ensuring every battery is properly crimped and heat shrinked is a must.

Issue: Encoder Faults on Swerve NEOs
Cause/Factors: Too much strain on the encoder wires, making the wires very vulnerable to damage when pulled out, which caused the wires to rip out of the JST pin connector when removing from SPARK MAX.
Solution: The main fix is allowing for more slack for the encoder cable, fitting to the JST slack requirements of 15 degrees. We used some older NEOs from the previous season which we found to be very vulnerable, so crimping the JST connectors or soldering on new pre-crimped JSTs is a priority for the offseason.

Issue: Anderson Powerpoles were not ordered properly, had to swap Anderson Ordering on Spark MAXs
Cause/Factors: Rushed wiring, overlooked as an issue.
Solution: After SDR, we reordered all APP connectors on our robot, and on spare Spark MAXs and NEOs. This was an issue we overlooked and was a severe hindrance when we needed to swap Spark MAXs between playoff matches at SDR, emphasizing that is a priority for next year.

Aerospace Valley Regional

Match, Time: Qualification Match 24, 28, 32, and 48, 15-second periods during teleop
Issue: Communications lost, Radio Disconnection
Cause: Bad Radio, had issues connecting to FMS
Pre-Match Factors: No addressable pre-match factors
Solution: Replacing our Radio, we originally thought it might have been a RoboRIO issue, however after testing on the practice field tethered, we isolated that it was a radio issue. We should’ve diagnosed and come to the conclusion sooner, however, we didn’t have much time between qualification matches so our diagnosis time was understandable. We didn’t experience any hard hits when our robot got disconnected, we did some research and we might try to do OM5P-AC Radio Modifications for our radios next year.

Houston World Championship (Curie Division)

Match, Time: Qualification Match 2, 0:02 into Auto, Remainder of the Match
Issue: Claw not functional, Battery Brownout towards the end of the match
Cause: Anderson Powerpole disconnection, battery brownout assumed to be caused by slight disconnection and reconnection, Anderson Powerpole grounding to robot frame.
Pre-Match Factors: Slack on elbow joint movement was tied down, causing increased strain and disconnection of the Anderson Powerpole connectors, causing the contacts to rip out of the housing.

Match, Time: Qualification Match 59, 2:15 left in Teleop, Remainder of the Match
Issue: Communication Lost
Cause: No communication between the Radio and RoboRIO, later found to be communication issues on our Tp-link ethernet switch
Pre-Match Factors: Unknown, ethernet switch not the most high quality
Solution: After discussion with the FTAs and CSAs, we couldn’t pinpoint the exact cause of the failure, especially as all systems were functioning after the match, they suspected that it was an issue between the Radio and the RoboRIO, our thinking was that it was a Radio issue based on previous issues with the Radio, added on with overconfidence in the electrical system between the Radio and RoboRIO, as well as the system working well for 2 qualifications and 1 practice match.

Match, Time: Qualification Match 113, 1:13 left in Teleop, Remainder of the Match
Issue: Communication Lost
Cause: No communication between the Radio and RoboRIO, later found to be communication issues on our Tp-link ethernet switch
Pre-Match Factors: Failure to diagnose communication issue in Qualification 59, overconfidence in ethernet switch.
Solution: After discussing with FTAs and looking at the ethernet switch status lights, we determined that the ethernet switch was the most likely cause of the loss of communication, where we switched our ethernet to directly wire into the Radio, and plug the limelight into the Radio’s second ethernet port. Qualification 127 played out with no issues.


The Positives:

  1. 0 CAN-related issues during matches
  2. No inspection-related issues
  3. Wiring issues easily fixed
  4. No battery-related brownouts during official matches

The Negatives:

  1. Robot dead on the field for about 3 matches lengths in time
  2. Failure to identify points of potential failure before and during events
  3. Cleanliness of the wiring before competition season was not up to standard
  4. Component Failiues that we didn’t have replacements for (Ethernet Switch)

Pre-Season & Build Season Overall

The Positives:

  1. Trained and certified 38 new and returning team members in electrical
  2. Fostered an inclusive and welcoming environment without sacrificing efficiency
  3. Productive and efficient in completing all of the goals set for the Pre-Season and Build Season
  4. Fostered open discussion for all subteam members to provide feedback and involved everyone in the improvements for the next year.

The Negatives:

  1. Lack of hands-on experience during the pre-season, partially due to a lack of components
  2. Unexpected material shortages, leading to delays in the build season, and were a minimal factor in budget overruns for the season
  3. Rushed environment during pre and build seasons, came at the expense of the organization of wiring on the robot

In all, we are very proud of the improvements we made as an electrical team this year from last year, however, we still have a bit of ways to go to reach our goal of creating a very reliable and clean electrical system, but we are very close to reaching it. Our electrical issues this year boiled down to two categories, 3 wiring issues, and 6 component issues. The wiring issues are the most preventable, which comes down to identifying potential points of failure, and better wire management, which comes with more hands-on training and a greater emphasis on cleanliness. It is a shame that we had component issues affect so many of our matches, some at very critical points, but that comes down to better identification of root causes of failures earlier, and buying more reliable components with plenty of spares on hand for replacement, which can be improved through better training and buying the Brainbox ethernet switches instead of the Tp-link switches. Overall we are very happy with the productiveness of the pre and build seasons, from the quality control of our batteries, to creating a more accessible electrical board, to the inclusiveness of our subteam to create future leaders, we are proud of the improvements we have made as a subteam and can’t wait for what’s ahead next season!

-Alex Zhang


Champs Review

Heading into Worlds, we knew Viper needed a few upgrades. We further tuned our arm setpoints, PID values, FeedForward constants, and our trajectory profiles to enact the fastest and smoothest motion we were capable of, reducing time for placing sequences by seconds at a time. Then, Team Spyder 1622 was gracious enough to allow us to use their half-field where we got to work on the features mentioned in our last post. We developed reliable piece alignment code using a colored shape pipeline in PhotonVision and used it in auto to make not just our two piece on the flat side consistent, but also our two piece on the bump side consistent. A much-needed improvement from Aerospace Valley. Unfortunately, due to a connection inconsistency with our Limelight 2.0, it curiously worked at times and didn’t at others. On the practice field it ran and in a match it didn’t. In our last match, we routed the Limelight directly to the radio instead of to an ethernet switch and it worked! Additionally, something we need to work on is our alignment using apriltags. We had code that worked in practice, but was too specific to use on the field reliably. Making our robot controls easy to execute and involving our driver in the process of making control features will be a goal of next year.

Season Recap

At the start of preseason, about 25-30 people came into our team interested in software. We developed a beginner-friendly and slow paced curriculum for robot code in java (That can be found at Software | Optix Blog) and spent much more time on fundamental coding concepts before getting to code the robot. With this system, we had trouble retaining members throughout training because coding purely Java quickly gets boring. Come build season, there were about 15-20 coders left. Since we spent less time coding the robot, many of our members had minimal debugging and development experience, hence they also had trouble applying the java fundamentals that they learned in their code. Next season, we have plans to alter our curriculum to integrate robot code a lot sooner than we did this year with a more hands-on approach. Although we goaled to last year, we are also going to make sure to dedicate our efforts to improving our code during the offseason as well and not all of our efforts to training.

This build season alone, we’ve improved our understanding of control algorithms, swerve code, vision, project workflow, autonomous, data logging, and much more. We are excited to pay it forward in the 2023-2024 season!

-Rohin Sood & Noah Simon


Overall, World Championships ran smoothly. Our team participated in several outreach based conferences, including various presentations by 1511 Rolling Thunder as well as a FIRST judge panel, both of which gave new advice and opportunities. Our 2022-23 outreach season was one of our most successful up to date. We’ve expanded our reach internationally through collaborations with UNICEF in Africa and Corazon de Vida in Mexico. We’ve also started an OPI (Optix Passion Initiative) program, where regular team members can plan outreach events as well. Even with the success of the 2022-23 season, there’s always room for improvement. This season, we’re working hard on making sure that we get feedback from organizations we’ve worked with to make sure our outreach is truly making an impact.

-Jason Fang

Final Thoughts

From qualifying and participating in the World Championships for the second time in our team’s history, to helping and growing the next generation of Team Optix, we couldn’t be more proud of the growth and success this season has brought us. As we look towards the next season, we look forward to improving ourselves to become a stronger team with the lessons we learned this year. Thank you!

-Alex Zhang

Adrita Chakraborty
Jason Fang
Varaprasad N @Varalu
Noah Simon @tubularturtle8
Rohin Sood @rohinsood
Alex Zhang @alexzhang3749

Rayyan Darugar
Lucy Niu

1 Like