Team 4067 - Java Code Release + SpringDS

After the Chesapeake Regional, we decided to extend a hand to the FRC community and release our code to the world! :slight_smile: (Well, it was open source throughout the development process, but we didn’t advertise it until now to prepare the code for public consumption.)

That said, we have two jewels to give away!

FRC Robot Code
Our team just started this year (we’re rookies), but as rookies we’ve gained much experience from working with the API. We’d like to give other rookies a head start next year! (Or maybe this year, if you think your code isn’t good enough!) Hence, we’ve taken our robot code, condensed it down, cleaned it up, and commented the code thoroughly so that everybody can read and understand our code, and the methodology behind it.

We serve the code in two ways:
ZIP Archive: A ZIP archive contained the entire codebase for this year.
Mercurial Repository: For those familiar with the Mercurial (also known as Hg, abbreviated) version control system, you can check out our code as well.

Download and some more info about the code release can be found here:

This is probably the more interesting jewel we have to offer! :smiley:

SpringDS (acronym for Spring Driver Station) is an automatic network setup program that configures the network to work with FRC Robotics. It setups up the special static IP and subnet addresses to allow the computer to connect to the robot. After the driver station has been closed, it will reset the network settings back to normal to allow regular Internet connections.

If you didn’t get what that meant - SpringDS basically automatically sets up your laptop/netbook so that you can connect to the robot, eliminating the time-consuming clicking and typing you have to do every time you want to communicate with your robot.

SpringDS can be used on the field and in the workshop! And as you’ve probably guessed, it sets up the network for both the FRC Driver Station and robot code uploading!

SpringDS is still in BETA, so there might be a few glitches that we haven’t found yet. We’re also working on a manual to distribute with SpringDS, although we think it’s pretty straight forward to configure and use. Just play around with the provided programs and you’ll figure it out. (If not, feel free to ask us a question or two, and we’ll happily help you out!)

SpringDS is designed by rookies, for rookies - we wanted it to be easy for us to use, and for rookie teams as well! However, this program is also useful for other teams as well, since it takes away one less worry/hassle. :wink:

SpringDS, like the robot code, is also open source. Of course, we don’t want you to have to install Python and all the little dependencies to use SpringDS, so we’ve packaged it in a installer and ZIP archive, both of which are standalone.

Enough talk, how about a download? (And more screenshots!)

Well, that’s it!
All of the code is licensed under the GPL, v3. Not a very interesting license to read, but it boils down to this: copy, redistribute, etc. the code, but whatever changes you make to it and whatever software uses it must be open source too. (We all share code anyway, right?) And of course, give credit where it’s due!

If you have any questions, comments, or concerns regarding our robot code (did we make a mistake in commenting? etc.) or our SpringDS program (bug reports, etc.), please post them below!

Nice network setup program! For a rookie team, your software team definitely has it together.

Just wanted to put out there our own solution to this, which we learned from this post by Folders of team 1671. We have modified the toRobot script so that you can specify your own IP address in case multiple computers are connected to the robot; see here.

Thanks! :smiley:

Hmm, interesting… we had originally looked at netsh, but felt that the tool would be unstable in that it may change its syntax one day, and that it was hard to make sure that it worked. Therefore, we decided to go overboard and use the Windows API with Python to accomplish the goal.

I think this probably summarizes what we did:
“If I had eight hours to chop down a tree, I’d spend six sharpening my axe.” -Abraham Lincoln

Nevertheless, I thought it was a challenging and fun experience - it definitely exposed me to new worlds, especially WMI.

Have you tried it yet? We’d really like to know if it works for other people as well!

I love the idea! I haven’t downloaded it but I will try once I get the chance.
Also, try Github for your project management - its more public savvy than Google-code (in preference as always is).