2024 Coussens Swerve

New year. New swerve. New me.

Proud to present the latest iteration of my swerve module. The previous version of this module that was used by 8096 during the 2023 season can be found here.

Basic Details:
4.75in L x 4.75in W x 7.70in H
2.25in x 2.25in wheel to frame edge
3.00in diameter x 2.00in wide black roughtop treaded wheel
4.64lbs
24.3/20.94/18.00/15.40 ft/s free speed options
233rpm free speed steering

STEP and SolidWorks (2022.SP5.0 version) files available here, best downloaded using CacheCAD!


The inspiration of multiple COTS swerve solutions now available, this module while mostly making minor improvements on the previous version, also has some major changes to adjust to the current FRC landscape.

Major features or details that have been changed or added since the last version:

  • Drive motor utilizing the new Kraken X60 from WestCoast Products. I’m very excited to be able to use this new powerful motor to power the drive on the module. That said, I wanted to make sure that the module could utilize as much of the power of the Kraken as possible, so…

  • Wheel has been increased in width to 2in wide black roughtop tread, while keeping the 3in diameter and most of the overall packaging style for a highly optimized package. This increase in wheel width should provide additional traction to help utilize the additional motor power.

  • With the change to the wider wheel, the azimuth gear has increased in size to an 84T 20DP spur gear. This results in the center of the wheel being further away from the edges of the frame. While this is not a good thing, this is similar to other commonly used modules out there, and I believe the tradeoff is worth it. One result of this change is…

  • 1.25in x 1.25in chamfer to the corner of the module to allow for a chamfered bumper, helping to round off the corner. In the past I have found this to help with dealing with defenders and getting caught on other robots, field elements, etc. I know from discussions with 33 they have also found this to be beneficial to do. A custom bent sheet metal part was designed to connect the top and bottom plates in the corner since there is not enough space for spacers. Thanks to Fabworks (use code FRC8096 for 5% off your order!) parts like these are easy to get and allow challenges to be solved in unique ways.

  • Another benefit of the larger azimuth gear and bearing, is that there is now enough space between the Kraken drive motor and the Neo550 steering motor to have the top plate of the module connected between them. This means that this plate is even stronger for connecting the robot frame together. This was never a problem before, but it is nice that this plate is now that much stronger.

  • A custom plate was designed to replace the motor mount plate on the UltraPlanetary. This was required so that a 3d-printed cover could be added to shield the Neo550 powering the steering of the module. During the 2023 season we had a couple issues with wires and other items brushing up against the motor, and navigating this area around the motor was annoying with the outside of the motor being exposed as an out-runner. This cover will ensure nothing rubs up against the spinning outside of the motor.

  • Various parts across the module are now replaced with parts from the MAXSwerve design. Now that parts from MAXSwerve are available for individual purchase, this allowed me to reduce the amount of custom parts to manufacture. Of course, the MAXSwerve module being based on a previous version of my module made it so I was able to do this without much effect to the rest of the module. Parts that I was able to use include: The block that mounts the Ultraplanetary, the gear/shaft that is the output from the Ultraplanetary, the 15T bevel gear shaft, the 45T bevel gear, the wheel hub, and the entirety of the bearing pack with the exception of the azimuth bearing…

  • The azimuth bearing has been changed to work with the increase in wheel width and azimuth gear. Previously this was a 2.50in ID 3.00in OD X-contact bearing. This is now a 3.50in ID 4.00in OD X-contact bearing, similar to the bearings used on other COTS modules. In the past I sourced this bearing through TTB. For this season, 8096 went and sourced the sealed bearings from China to save some money, but of course you could source this from TTB or SDS.

  • Unfortunately the MAXSwerve uses an 8mm hex shaft on the end of the 15T bevel gear shaft for the spur gear to engage. This is not any kind of standard in FRC, so an 8mm hex to 1/2in hex adapter was added so that I could use standard 1/2in hex gears for that portion of the drive spur stage.

  • A part was added that nests into the underside of the bottom plate to retain the bearing on the end of the Ultraplanetary output gear/shaft. MAXSwerve has a counterbore on the top of this plate to keep the bearing retained, but I chose to keep the manufacturing of that plate simpler and only require machining from the bottom side. So this extra part overlaps the outer race of the bearing to retain it, and is mounted using the same screws that mount the Ultraplanetary itself. I plan on just having this part printed, but it could also be cut out of a material of your choice on a router, laser, etc.

  • A pilot feature was added to the printed part that the through bore encoder mounts to. Part of the last version of the design was that all modules could have the same absolute encoder position, so that if a module ever needed to be swapped, we would not have to worry about re-zeroing the encoder. This generally held true, but we were able to see +/- 3 degrees of error across all of the modules 8096 built last season. We believe this error simply came down to the slop in the mount holes on the encoder to the screws mounting it. There is now a pilot feature that tightly picks up the outside profile of the molded mount wings of the encoder. While we do not expect to completely eliminate the error across all the modules, this should hold the error tight enough to not matter or require re-zeroing as much if a module swap should occur (we never ended up swapping out an entire module mid-season anyway so this doesn’t matter all that much anyway).

  • The design of the new azimuth gear has been optimized so that it can be machined from a stock aluminum 84T 20DP gear purchased from WCP. While a printed gear here is actually okay in normal operation, if something falls into the module and gets jammed in the teeth, it has the potential to break some teeth, so an aluminum gear is good peace of mind. The gear only needs to be machined from one side, so I designed a printed fixture that can be mounted to a router, and all of the features can be machined on a router without ever having to re-fixture the gear.

  • Similar to the azimuth gear, the design of the forks has been simplified and optimized so that it is possible to be machined. 8096 is undecided whether we will run printed or machined forks at this point, but we will at least be machining a pair to see what we think. We never failed a printed fork during the 2023 season, but once again an aluminum fork is additional peace of mind. The fork design has also been adjusted so that both forks are now identical, simplifying assembly and manufacturing even more.

  • The shaft has been simplified to be a basic round standoff; 10mm diameter to fit the standard bearings from the MAXSwerve bearing pack, and tapped to 10-32 on either end for convenient mounting. This means this shaft is now a simple cut to length and tap job.

  • In addition to the wheel width being increased to fit 2in wide roughtop tread, the way the tread is mounted has been changed to utilize nylock nuts that slide into slots from the side of the wheel. Previously heat-set inserts were used, but we found during tread installation it was common for the inserts to spin, and thus the screws not being able to be tightened or removed, leaving the wheels useless. We tested this new method using nylock nuts during the offseason on the 2023 8096 robot and found it much better.

  • Bumper mounting option has been updated, with the mount point being shifted inboard more, and also utilizing quick-release push-button nuts that I found on McMaster. These have an internal spring behind a button, and the button has a slotted hole, with one end being threaded. When the button is pressed, the end of the slot that is clearance for the thread engages so that the nut can be slid on/off the thread. When the button is released, the spring pushes the threaded end of the slot against the thread to engage, allowing you to tighten the nut down like normal. I found once I purchased one that nothing retains the button and spring if the nut is not on a thread, so I added a small cup-shaped printed part that is glued to the bottom of the nut to partially overlap the button to prevent it from falling out. This should provide a robust mounting solution utilizing thread and nut like I have previously, but give a more convenient and quicker way to take the bumper on and off.

  • Bumper integration was also updated to include an optional skid block that can be mounted to the top of the bumper to help protect mainly the Kraken drive motor, depending on how high the bumper height is set to based on the game challenges.

  • Finally, I added an optional bent sheet metal bracket that both acts to shield the inside of the module from debris, and also act as a Spark MAX mount point for the Neo550 steering motor, as well as something to mount some wire management items to. This bracket mounts to the frame, which means module removal remains easy.


The first stage of reduction for the drive of the wheel is a configurable spur gear stage. This is then followed by a 15:45T bevel gear reduction. The first stage spur gear options are listed below, along with the resulting free speeds (first gear is on motor shaft using a SplineXS to 1/2in hex adapter):

26:28T - 24.30 ft/s free speed
24:30T - 20.94 ft/s free speed
22:32T - 18.00 ft/s free speed
20:34T - 15.40 ft/s free speed


The steering ratio is 2x “3:1” Ultraplanetary stages, followed by a 14:84T spur gear stage. This is an overall ratio of 1:50.11, with a free speed of 233rpm. Note that the Ultraplanetary ratios are not exact; the “3:1” gear stage is actually 2.89:1.

Steering position is determined using a REV Through Bore Encoder mounted to the underside of the top plate underneath the Kraken X60 motor, and wired to the steering Spark MAX using the Absolute Encoder Adapter board from REV. Local control can be done using this encoder on that Spark MAX, or just used to get the initial position of the module on power up, and then use the encoder on the Neo550 steering motor.


Details about overall size, wheel base dimensions, and a detailed section view are above. Mount holes are spaced so that they align with standard 1/2in pattern 2x1 tube, and so that the ends of the tube are 4.00in from the edge of the module, keeping the main frame tubes on 1/2in pitch to each other (a small chamfer does need to be cut/sanded into the inside vertical edges of the main frame tubes).


I have working on iterations to this module for over 8 years now, and it is pretty cool to see how far it has come, and the impact it has had on the FRC community and landscape. Feel free to leave any comments or questions below and I will do my best to answer promptly. Good luck in the 2024 season!

EDIT: A slightly incorrect version of the CAD was uploaded. The link has been replaced as of 3:25am central, so you only have the incorrect version if you downloaded in the first couple hours of this post.

64 Likes

2" Wide Wheel is insane for this form factor. Hoping to see this built one day

3 Likes

cooks

8 Likes

Swerve XS 2.0?

2 Likes

What’s the BOM?

The wide wheel war has begun.

5 Likes

Gotta go dually, saves some complexity too.

2 Likes

I’ll work on getting one posted here before kickoff.

2 Likes

@Nick_Coussens A few questions:
Do you have pictures of the assembled modules? Mostly interested in seeing how the wiring integrated.

How are you holding the Wago 221 inlines into your printed mount? They fit pretty snugly but can pop out unless the wires are also fully constrained. (Edit: are the bottom cutouts zip tie channels?)

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.