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.

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.

1 Like