Fully Open FIRST System

While thinking about the current state of affairs as far as development on the FIRST competition system goes (end-to-end, all the hardware/software needed to run competitions and robots), I had a crazy idea.

What if every component of the competition system was open and available for hacking outside of competitions? That is, what if the FIRST community designed its own control system?

Before everyone chews me out for it being completely impractical, let me explain fully.

FIRST Robotics Competition has the workings to make a thriving developer community. In some ways, there already is (especially in secondary applications, eg The Blue Alliance team database). But the FIRST organization has squandered that.

So my idea is to open source every detail of what shows up on site. All the software scheduling and controlling matches, the hardware communicating with robots, the robot controllers, the OI, the master firmware, everything. The designs and software are freely available in an open source fashion.

This means that teams are free to modify and improve the system. They can add features, improve performance, and fix bugs. Anyone with sufficient interest can look at what goes on under the hood.

The key for it to not descend into chaos is that teams are still required to use electronics that come in the kit of parts each year, with approved and released firmware.

What this means is that even if small teams don’t touch the innards, teams must contribute improvements they make to the system in order to benefit from their work.

I’m not saying that every bit of silicon needs to be open source. I’m perfectly OK with commercial, off-the-shelf parts for things like wireless routers, motor controllers, sensors, operating systems, processors, etc. But I think that the system should be open, with such dependencies documented.

There are technical ways of ensuring that teams aren’t abusing this openness: encryption, hashing software, controller self-tests, analysis of user software, etc.

A great many factors prevent this from working in FIRST as it currently stands. Factors like politics, FIRST org. turnover, individual mindsets towards open source, ability to produce 2500 boards based on an open design in <6mo, and on-site competition support. Some of the factors are not necessarily things like security, integrity of the system, cheating, etc.

It should be possible for many basic issues to be resolved. Things like tested and vetted designs before release to manufacture, multiple eyes checking changes, releasing change logs from year to year, etc.

Just one request: before flaming me for considering the sky to be a nice goal, think about it some. Yes, it’s a total pipe dream. But it would still be awesome if true.

I like the idea, but their are some problems to this. There has to be a group of intelligent people dedicated to this cause. The goal itself is large, but isn’t that what FIRST is about. Working together to achieve a common goal aka teamwork. I would love this to become true as long as it is available for everyone. Nice thought.

… The goal itself is large, but isn’t that what FIRST is about. …
Can you be more specific?

I’m pretty sure that encouraging students (and mentors) to voluntarily carry out the activities involved in this suggestion, is close enough to FIRST’s published mission that we wouldn’t have to worry about misaligned goals.

Maybe FIRST’s goals are broader than you think? And, if I’m right, I certainly hope you find the broadened horizons exciting!


I think I answered too fast without explaining. We work together in teams and try to help other teams. Their are really bright kids and adults in FIRST. I am for this and i see the broadened horizon. I was just saying that their has to be a group of people that want to take charge of this.

Jamie -

Very interesting concept.

What license would you use?

Understood - I think you are right - I suspect (just a hunch - I have no stats to back up my opinion) that the vast majority of successful open ___ projects are guided by a core group that effectively channels the creativity and energies of many contributors into producing a cohesive product.

I would guess that the GPL or some other similar license would be good. One which prevents the software from being resold without the source freely available. This prevents someone from using the code developed for FIRST in a commercial system. The license choice depends entirely on what things FIRST wants us to be able to do or not be able to do with the code.

Why prevent this?

I’m not actually particular at this point. I’m partial to GPL or LGPL, but an academic license (MIT, BSD, etc) would be fine right now.

A business partnership would help considerably in making such an arrangement viable, where something like GPL would force the business to contribute back to the community. OTOH, GPL would probably scare off some businesses, and the only really reusable components are the robot controller and the control electronics.

The other issue is: What license works well for hardware designs?

After some thought, these are my opinions on licensing.

Software should be GNU GPL or LGPL. This is defined as anything written to run on a programmable IC, not to be fabricated. (HDL for an FPGA would be software by this definition.) LGPL would be primarily for things like hardware libraries which would be more or less required to be linked with the ‘user code’ (eg something akin to IFILib or WPILib).

Hardware licenses are somewhat of a stickier problem. Joe ‘Zonker’ Brockmeier wrote on Linux.com about it. While developing free hardware doesn’t work in the same way (testing, debugging, and using are somewhat more costly), it’s still an essential part. Zonker also points out (and I alluded to) the fact that hardware and software are often the same. So I’m for all of the hardware being GPL or similar, although applying GPL to circuit boards which have non-free ICs included would be challenging. Something less restrictive may be required.

My $.02