599 The Robodox | 2023 Build Thread

Team 599 is excited to join the #openalliance for 2023!

The Robodox is an FRC & VRC student-led team, based out of Granada Hills Charter High School in Southern California. This year, we have 45 students total and 2 VEX teams, leaving 36 students involved in FRC.

We started this school year with a new lead mentor, new school administration, and a team half-full of rookies. Offseason has been an incredible learning experience for both the technical and administrative sides of our team. We successfully upgraded from an Everybot to a new swerve bot (shown at Tidal Tumble and Beach Blitz), and we strive to continuously improve while reinforcing measures for team sustainability.

Team Links

2023 Regionals - hoping to attend 3

  • Ventura County Regional (Week 2)
  • San Diego Regional (Week 4)
  • [Waitlisted] Aerospace Valley Regional (Week 5)
  • [Waitlisted] Silicon Valley Regional (Week 6)

We’re looking forward to a great season and sharing what we can do with this community!

(written by @cactuz, our wonderful president)


Can’t wait to see what you guys build! Also, can’t wait to see you at ventura! (And hopefully aerospace)


Team 599 Offseason Recap

We’ve been fairly busy during this offseason. Here’s some of the projects we have been doing:

Rapid React Offseason

We competed in both the Tidal Tumble and Beach Blitz offseason events. We ended up building a new robot in the beginning of the school year, as a form of rookie and veteran training across all subteams. We never completely finished the bot, and there were a number of issues; however the robot offered valuable insight into ways we could perform better during the 2023 season.


  • Veteran CAD members designed the offseason robot, allowing new CAD members to see what would be expected from them during the season
  • Participating in the F4 CADathon provided us an opportunity to practice CAD skills and working together among the subteam members. This also allowed us to run through what would be done for kickoff and see if it works or not.
  • The CADvent series of practice parts, allowing subteam members to hone their individual skills
  • Designing a new robot cart (hopefully this gets built in time)
  • Designing a new battery/charger box


  • Working with new control system components
  • Working with pneumatics on the offseason robot
  • Testing new members on knowledge they should have accumulated in the offseason, such as control system synthesis and electrical troubleshooting
  • Working with CAD to design a new battery box


  • We are beginning to restore our bridgeport mill, cleaning rust, oiling, and installing a new DRO.
  • We are also restoring an old dividing head that we can use to create custom gears if needed for our next robot.
  • CNC team has been tuning feeds and speeds for our omio CNC router, as well as installing a new power supply after our last one died.


  • Strategy has developed a new plan for kickoff that will hopefully work better that that for 2022
  • This was in part tested during the F4 CADathon


  • Prog developed swerve code for the offseason robot
  • They also developed AprilTag detection capabilities
  • Prog have also been working on developing autonomous with pathweaver


  • Outreach helped establish a new FLL team along with the CHEER nonprofit organization in our area0

2022 Recap Video

Robodox 2022 FRC Season Recap | Team 599


The F4 CADathon results recently came in, and we placed 7th out of 34 teams.

Feedback doc:

Tech binder:


you know, i was gonna write this the day of but then i got really sick and sort of forgot haha


the The Robodox 599 kickoff featuring :: underestimating the game challenge :: bad designs :: passable designs :: not enough prototyping :: and some ctrl-c


In which we read the game manual, did strategy, and read the game manual more. And then took the rules test.

Our game analysis document:

We began to discuss what mechanisms we would use on our robot. We settled on a swerve drivetrain (with L2 mk4is).

A few designs for a manipulator and intake:

And a few very terrible drawings made when I explained them during our recap meeting:

2019 pivot extension:

Four-bar (double compounding optional):

Double elevator (in name only, the second ‘elevator’ is a slider):

Wristed intake:

“Noah’s roller thing”:

Eventually during the yknow midnight discord convos we decided that a pink arm system (eg. 294 in 2018) was worth looking into.

in other news our omio power supply got fried (fun) and we’re waiting on school admin to be able to get a new one

Our team completed some worksheets prepared by our strategy team.


We began to prototype today, among other developments. Mostly we prototyped noah’s roller thing, as the rest of our design team was still discussing options for scoring and an arm structure. After running geometry, we decided that a pink arm system didn’t leave enough space for the intake structure. We eventually settled on something like 971’s 2018 system, with two independent arms.

We started machining drive rails for our chassis. (150 holes go brrr)

Programming updated laptops

e&p started prepping batteries

We cleaned 60 years of rust off our bridgeport mill. apparently it was supposed to be silver

We also began to fabricate game elements. We are focusing on charging station first but we’re missing some materials, including the hinges


week 1 recap (if you squint) featuring :: cad :: misguided prototyping :: actual prototyping :: field building :: “cad release” :: a goat named rianne :: the cad lead, suffering :: or well just plain suffering

should i have gotten this done earlier? i should have done this earlier

“CAD release”

…is it still a cad release if there isnt a neutral file format

there isnt a step because there isnt a main assembly. this is fine.

would you believe me if i said cad is only a day or two behind

GrabCAD public drive:


Cad’s been. Going. Has it been going well? …good question how about maybe

We settled on an intake design similar to most 2018 intakes, with horizontal rollers. We plan to build in some compliance by using both compliant wheels and some small gas springs.

We had a discussion on our prototyping, and decided that our way of prototyping was ineffective. We temporarily paused prototyping in order to work on CAD and create layout sketches. After finishing them, we continued to prototype and should be done next week.

CAD screenshots:

FEA of the arm with a 500 N force at the intake attachment point:

Arm assembly as it is right now:

dont look at the bottom i want to cry

does it work? good question


Mechanical have been working hard on our parts. After finalizing the drivetrain CAD, we sent the drivetrain rails out to be fabricated.


We replaced the power supply on our omio CNC router, and it works again. Here we’re cutting a belly pan segment:

Our (newly silver!!) bridgeport mill:

Official goat Rianne machining drive rails:

More drive rails:

Electrical and Pneumatics

We got six new MK batteries and two new chargers to support them. We are transitioning to 4 gauge wire this year, so we’ve been changing out our battery leads to 4 gauge.

Electrical have also begun to plan out the electrical layout on the belly pan.


Programming has been working on apriltag detection with photonvision. We are setting up photonvision on a beelink minipc that we got recently.


flashing lights warning - 599 Week 1 Recap Video


I only forgot about this for like four days and it’s still technically on time so everything is fine i swear


We were supposed to be done this week. We, uh, aren’t, but we’re “done enough” that mechanical can have our parts. By “done enough” I mean “we have a cad release with a .step and main assembly” and “if it were made now i can pretend it works”.

GrabCAD workbench link (should be the same, should also include a .step file):

Some CAD images

Intake iteration 0 (Sushi style intake in order to have one by CAD’s deadline)

Intake iteration 1 (A native claw-style intake with pneumatic actuation in order to intake both game pieces)

Final (we hope) arm

Arm gearbox (missing: brakes)


We began assembly of the chassis, and fabrication of sponsor panels.

Electrical & Pneumatics

In E&P, we were able to figure out a general layout of the belly pan that is able to contain both pneumatics and electronics. Many of the challenges we faced in planning the board came from the large number of components we needed to be on there like the Beelink or the CANdle, in which we were also able to figure out how to have cool LEDs working. In addition, we continue to work with our batteries to ensure that they are ready for competitions and analyze them through the use of Andymark’s Computerized Battery Analyzer.


During the offseason we managed to get working swerve code that can easily be translated to this year’s robot. So going into this season the main priority was figuring out how to optimally utilize swerve during autonomous periods. We began looking into pathplanner as one of our best options as unlike pathweaver, the 3rd party stuff is more suitable for holonomic drive and decoupled headings. By Wednesday we were able to get output from our drive motors that sorta matched what the trajectories we were creating. However, as we moved onto the ground we realized that our current code kept swaying to a side when we imputed a straight line for a path or could not rotate while moving. After a couple days of banging our heads against the computer we created a chief delphi posted to hopefully get some advice on where our code could be going wrong. The creator of pathplanner himself actually replied and provided some extremely helpful advice.

One problem that now seems painfully obvious in retrospect is that we created wpilib’s HolonomicSwerveController in the execute part of the command instead of the initialize. This meant that on every iteration of the command it created a new object instead of reading from the old one. Sorta insane how we missed that. Another piece of advice that we hope to start testing with on Monday is using pathplanner’s own swerve controller. Hopefully this could provide a more accurate translation of the trajectory states that are produced in pathplanner.

The end goal is to use this to reliably run 4-6 key autonomous routines that can make us extremely competitive during matches. Most of them will likely be run through top of the charging station as crossing the wire cables could mess up our odometry, although hopefully our plan to implement apriltag vision into our poseEstimator could help alleviate this potential issue.

We are still early in development for developing the code in our arm subsystem. From the amazing help of our mentors we have been able to learn a solid foundation of inverse kinematics that we hope to apply to the design of our code to make arm movement as seamless as possible. We plan to create a simulation of the arm movements to predict the PID values that are needed for the arm. The idea was explained to us by our amazing mentor Mr.Siegert.

Week 2 Recap Video:


(written by me, Chanon, William, Diego)

happy (belated) (lunar) new year!


…i know, im late again; life is not a merciful captor


cad is done; detailed post coming soonTM, I swear. Some highlights:

low-effort part tracking because ben was lazy

assembly drawings. are. very hard


We’ve been working hard to fabricate the parts that CAD has given us, which besides being the normal amount (a lot) of spacers, shafts, and L brackets, has been a fun challenge with their more challenging and detailed designs. (CAD note - they’re …having fun with 42” long rails that are too long for the DRO, elaborate lathework, you know, the usual)

We’ve been staying on top of the drawing being pushed out and are expected to hit our deadline without an issue, if no machines break or something majorly bad happens.

Electronics & Pneumatics

We’ve been continuing to analyze our batteries with the use of the Andymark CBA and determine which ones are suitable for competitions and for practice. In addition, we are finalizing our belly pan design and are going to start the integration of components onto subplates to be mounted on the bottom of the belly pan. This would also allow for the robot to be more easily maintainable at competitions because of the ability to easily see the components and wires and the ability to remove and replace components faster.


Fixes have been made to the configuration of the SwerveDriveKinematics in order to correctly align us with the actual coordinate system of the field. This has fixed issues regarding our path planning trajectories, of which, we can now produce generally accurate paths to run during the autonomous period.

Vision through the beelink has been set up on our offseason bot in order to test apriltag integration to the pose estimation of our bot. The end goal is to be able to run accurate autonomous paths on the lower side of the charging station over the power cord. This would make our autonomous periods more competitive over teams who must go through the top of the charging station in order to keep an accurate odometry reading.

Motion-profiling of the arm subsystem has been tested on our dummy board and is confirmed to work. We now wait for the mechanism to be built and electronics assembled to do final tuning.

I mean, we’re on schedule? So.

Post written by Ben, Ian, William, and Diego


the promised cad post

you see, this was supposed to be finished later but we were being not lazy and i went “why not”



or, Project Speedrun CAD

We’re using MK4i L2 falcon swerve, in the normal configuration. You know, pretty basic stuff. The more interesting part (not by much) is our bellypan - inverted electronics with a polycarb shield on the bottom. We might add some silicone to aid with grip if we drive off the end of the charge station.

For supporting the arm and gearbox we decided to make a simple superstructure consisting of a 2x1 supported by triangle 1/4th inch gussets on both sides attached to the dead axle.


or, Project Give Ben Trauma

Our arm is a 2dof arm - basically 971’s 2018 arm - designed to be somewhat easy to manufacture compared to carbon fiber round tube, at the expense of weight and a small amount of stiffness. There’s a wrist on the end, so in total there’s three degrees of freedom on the arm.

Both dof’s on the arm are driven by the central gearbox with power transmission via steel wire rope. An interesting byproduct of this implementation is that without motor input, both joints act as a virtual four bar.

The near (proximal, first, lower) arm consists of 2 ~42” long sticks of 1/8” wall 2x1. We considered using 1/16” wall and ran fea for this as well, however we decided to stick with 1/8" for peace of mind.

(applied force of 500N, where the intake is)

The far arm consists of 36.5” of 2” OD 1/16” wall round tube, welded into round tube endcaps. Shoutout to Mr. Paulson for being a goat and helping us with welding.


or, Project What The [Four-Letter Word] is Going On

…yeah, that’s basically it. Both arms are driven by two Neos on a 161.58:1 gear reduction, with a final reduction of #35 chain. A single neo on a 80:1 gear reduction drives the wrist.

There’s also a pneumatically actuated brake for both arm stages. We decided 971’s braking system was the best method to go with, so we decided to use a pancake cylinder to push a rotating brake disc against a stationary brake pad. The rotating brake disc is connected to the gear system, so when stopped it stops the whole stage of the arm.


or, It’s Never Gonna Be Final

We quickly decided to start off with a 2018 style claw to pick and place cubes, but quickly came up with other iterations. Our second idea was to use 3 rolling tubes, almost identical to the intake on the everybot. We eventually settled with making 3 different intakes, a 2018 style claw, an everybot intake, and a 7461 Sushi Squad intake. We decided to use all 3 intakes, rotating each one out.

Our 2018 style intake utilizes two 1/2in pistons to push out the claw, with “open” able to intake cubes and “closed” able to intake cones. This design also allows us to clamp cubes instead of spinning our intake in and out. We are powering our rollers with a single neo 550 on a 5.75:1 gear reduction. In total, our intake weighs 6.1 lbs.

There is a new .step file in our GrabCAD directory, which should be the (mostly) final CAD, before intake iterations.

post written by Ben and Chanon.


taking some inspiration from other teams and threads (who are much better at this thing than I am), is there anything you want to see from us? we’ll see what we can do

https://youtu.be/ckI9b6ts_iU 599 The Robodox provides their updates includes a deep dive into their CAD including cool explanation of their breaking system for their arm take inspiration from FRC 971 and also shows off intake prototypes



Why have pneumatic brakes for the arm joints? Are the motors not torquey enough?

We were mostly concerned with keeping the arm inside the frame perimeter before the start of the match. Doing this would also make the arm stiffer while scoring, and potentially lessen the load on the motors when holding position.

Is your brake a COTS or custom?

its a custom inspired from 971’s 2018 robot

1 Like

Would you be willing to provide more detail on why you decided to go with 1/8" 2x1 instead of 1/16? Do you have some kind of team standard for what you want to see or not see in the FEA results for the design/materials? I’m admittedly not very knowledgeable on them.

To be completely honest, it’s our first year doing FEA as well. I’m fairly certain we could have gone with 1/16 wall and have been fine.
On the other hand, experience made me worry that the tube could fail at the bushing holes, and thus we made a decision to use 1/8 instead.

The most immediate impact of using 1/8 instead of 1/16 is increased weight; however this would only increase the weight by 3 lbs, which is negligible compared to the gear ratio and total robot weight.

What led you to choose a wire rope transmission? How are you avoiding slipping on your wires?

We’re avoiding the wire slipping by clamping it down with bolts on the pulleys. This leads to being unable to rotate >180deg but since it’s just arms we decided this was not a problem.
We considered using dyneema (and still might for the arm) but decided not to because we were concerned that it may stretch.
For driving the large arm, we still might use dyneema due to the stiffness of the wire rope not playing well with clamping.

1 Like