Making Code and Designs Public for 2020 season

Here dropbox link are two versions of a connector interfacing board for the FRC robot controller. These are conceptually similar to the Swyft Robotics JCB-0001 “NI roboRIO JST Board” but have been optimized for our own requirements. The designs may be used as-is or as-modified under the terms of the Creative Commons CC-BY-SA-NC license.

The primary objective for both designs was to provide a mechanically secure alternative to the square-pin connectors used on the NI RoboRIO. The “V1” board uses 4.20mm pitch connectors sold by several manufacturers under various brand names, e.g. Molex “Mini-Fit Jr.”. We planned to use this version of the board during off-season competition (BunnyBots) and for advanced software development, so I included connectors for all the analog and digital I/O pins on the MXP connector as well as the primary analog, relay and digital I/O pins around the edge of the RoboRIO. I provided additional four-pin connectors routed to pairs of DIO channels for easy connection of quadrature shaft encoders. I did not, however, include breakouts for any of the RoboRIO PWM channels as our designs are using CAN for all our motor controls.

The second version of the board uses the slightly smaller, but more expensive, 3.81mm “Euroblock” pluggable connectors, again available from several manufacturers. The smaller connectors, along with the ability to stack two three-position connectors in the same space as one six-position connectors, leave enough room to include connectors for all the PWM channels. This is the version of the board I expect will be most useful to other FRC teams.

In order to aid both software development and diagnosis of sensor and actuator wiring problems, I included LED indicators on the DIO and the relay channels. The LEDs on the DIO channels illuminate when the DIO line is pulled LOW by an external sensor (or by a low output from the RoboRIO, but we didn’t use any digital outputs.) Although this may seem “backward,” it’s actually quite convenient because it works with common open-collector or switch-closure-to-ground sensors operating at either 3.3V or 5V and because it means the LEDs are OFF when the sensor is disconnected. The LEDs on the relay channels illuminate when the FWD/REV outputs are driven HIGH by the RoboRIO. Each of the LEDs draws less than 3mA so they should not interfere with sensor or relay operation. OTOH, we haven’t yet verified with FIRST that this is in full compliance with R75, so we plan to construct one of these boards without the LEDs for competition use.

I’ve included the original Proteus Design project files, printable PDFs of the schematics and layout, generated Gerber files for board construction, and parts lists and pick-and-place files for board assembly. You should be able to send the Gerber files to any of the prototype PCB manufacturers and get bare boards back in one to three weeks. You’ll also need a day, or a few days, to hand-solder all the connectors on the board. (Hint: assembly is faster and cheaper if you leave out the LEDS and resistors and install only as many connectors as you really need.)

Steve Tarr
CSA and mentor,
FRC 1425 Error Code Xero

1 Like

Took time and searched technical/programming for code releases this year, in CD.

Next step: add direct links, other information in table so folks can find source faster.
See also Firstwiki for a different database, including code from prior years.

team link code language compiles cad notes
41 delphi github python delphi
60 TBA github Labview also has code from last 3 years
190 delphi github Java yes
254 delphi
488 delphi
610 delphi
670 delphi
900 delphi website
930 delphi github java grabcad
971 delphi
973 delphi
1023 delphi github LabVIEW grabcad
1114 delphi
1519 delphi
1540 delphi
1629 delphi
1678 delphi
1736 delphi
2062 delphi
2102 delphi
2170 delphi github cpp
2194 delphi
2231 delphi github java shared lib
2412 github java
2485 delphi github java shared lib
2614 delphi
2813 delphi
2813 delphi part 2
2910 delphi
3044 delphi github java
3229 delphi github cpp
3468 github java
3476 delphi
3536 delphi
4004 delphi
4020 delphi
4048 delphi
4143 delphi
4265 delphi
4285 delphi github java grabcad plus 2020 links at delphi page
4488 delphi
4653 delphi github
4776 delphi
4810 delphi
4829 delphi
4855 delphi github java 2020
5024 delphi
5190 delphi
5409 delphi
5499 delphi
5507 delphi github java yes
5550 gdrive code and cad
5675 delphi github java grabcad
5687 delphi github java
5700 delphi cad.onshape also 2018, new cad
5818 delphi 2020 links
5818 delphi 2019 links
5847 delphi
5940 delphi
6377 delphi
6424 delphi
6868 delphi
6886 delphi
7103 delphi github java

900’s 2019 release hidden in our whitepaper post - ZebROS 1.1 2019 WhitePaper

Here is team 5409’s cad and code for release.

Team 5190’s Resources:

3538 Code Release, enjoy:

All Team 488 Repositories: Highlights include:

And many more!

4810 I.AM.Robot’s code release:
All 4810 code
4810’s 2019 Code

The zip file is an unapproved framework we were thinking of using, but in it is examples of using CTRE’s libraries in LabVIEW, along with some explanations of what various functions do for out newbies (look in the initializing drivebase vi)
4810 Potential Robot Template (405.9 KB)

1 Like

I am the programming lead for team 4265. Here are the descriptions for our code. Links are posted below.

2019 Alpha Robot
Our code from the 2019 Deep Space season contains no autonomous code, as our drivers used camera feedback to drive during the Sandstorm period. This season, our focus was to make our driver’s lives easy, so we include many safety features including warning lights, tilt detection to prevent our robot from tipping, hard and soft stops for the elevator, detection of motor and encoder failures, and an override button in case of failures. Other features of our robot include autopilot, where the turning motion of the robot is partially controlled autonomously to help line up. We also use autoshifting to high and low gear and our elevator uses a PID and feed forward controller.

2019 Summer Rebuild
Since our programming team was new, in the off season we refactored our code from the 2019 season to allow our new members to learn how our code is set up. This code was meant for our Beta Robot and is a simplified version of our 2019 Alpha Robot code. It does not contain code for our elevator.

2019 Dashboard
This year, we used a touchscreen tablet for our manipulator’s driver controls instead of mapping 15 buttons to a gamepad controller. Along with these driver controls, we have many indicators for driver feedback including warning lights, camera, state indicators, overlays, and IR sensors. We also have visual cues, such as a match timer and elevator state and goal indicators. We have a tune tab for parameter tuning and indicated data points.

Autonomous Path Planner (Python)
Our path planner for autonomous programs allows the user to upload a picture of the field and add points to generate a planned path for the robot. You can change each point’s x and y values, velocity, and orientation. We apply a linear interpolation of the points and then smooth out the curves.

Autonomous Architecture
We implement our autonomous code into Periodic Tasks with the rest of our TeleOp code. We read a file that has the commands for the play we want. These commands are split into driver and manipulator controls and are run in parallel.

Toolbox VIs
This contains our commonly used VIs that are easily reusable in our code.

This is our first attempt at swerve code that we worked on this off season. Part of it was based on 2614 MARS 2019 swerve code.


And here are our links:

1 Like

It look like you accidentally linked 190 for 190 and 254. 254’s post is here. Team 254 Presents: 2019 Code for Backlash

1 Like

@Joe_Ross enabled editing on Making Code and Designs Public for 2020 season
so deleting content here.

Less is more.

I made your previous post a wiki so it can continue to be edited, and updated with your latest list.


You better believe 190 is coming for that clout

1 Like

Team 2813 has two 2019 releases (some code overlaps and some does not). The second is in the list above, I’ll post both here:

All 1540 code (including our 2020 competition code, as soon as we start writing it) is publicly available on our GitHub at

In the past year, we’ve continued our work on our common code library, Reusable Object-Oriented Systems, Templates, and Executables for Robots (or ROOSTER for short).

Our 2019 competition code (for our robots Phineas and Ferb) is also present, containing our field-oriented tank drive system integrated with advanced custom vision pose estimation (including full 3D pose using the Limelight without compute3D, odometry to continue tracking when the camera is blocked by our elevator, automatic calibration to field/camera variances, and automatic hatch placement when in position) as well as a variety of advanced superstructure controls, a gyro-stabilized climb sequence, and self-test functions for all robot mechanisms.

You can also find the code for our 2019 BunnyBots (Chonk and Liam) as well as an unused vision system we developed during the 2019 season.

All team 5940’s code is available on our github. Repositories of note include:

Our cad from 2019 is available here (3.7gb of mess).

Team 4926 basic chassis REV 4 (2017, 2018, 2019…and maybe 2020!)

Adding 1519’s code release to the list: Team 1519 - 2019 Code Release w/2020 Beta Test Updates (Java)

Just to be extra safe, here is our code from last year as well as offseason projects.

Last year’s code: frc-2019

A rewrite of last year’s code, featuring some WPILib 2020 things (it’s on the develop branch): frc-2019-rewrite

We made a submodule for shared classes that our code will use (most of everything is on the develop branch here too): WarlordsLib