I’m proud to admit that I think the Arduino concept is so good that I have patterned everything I am doing after them. A little over a year ago I knew that I wanted to start making Open Source hardware designs. So I dove into the Arduino site and learned everything I could about how they are doing things. I wanted to figure out how I could build on top of the good Arduino work in a way that provided exciting new options to the community but was different enough to not compete with the Arduino or just be another knock off. What I learned from the Arduino site is that the real key to the Arduino is in how easy it makes it to get started with micros. As I see it, the essence of the Arduino is boiled down to this. Someone looking at the Arduino for the first time is drawn in by the potential of what they can do with it. The software makes the hardware so easy to use that they look at it and think, “Wow, I can do this and this and this with it.” I realized that anything I attempt to do should embrace this simple concept.
I also realized that I wanted to open up that same potential for the FPGA world. I wanted to bring that same Open Source spark to the FPGA community by making an Open Source FPGA design. My intention from the beginning has been to follow in the Arduino’s footsteps and make the Arduino for the FPGA world. I made my hardware design, the Papilio One, simple and expandable just like the Arduino. But I knew that there was much more than just making a hardware board, I also needed to make it easy to use like the Arduino is. I figured adopting the Arduino IDE is best for everyone since there is no need to reinvent the wheel . So my next step was to implement a Soft Processor that could run on the FPGA and provide compatibility with the Arduino IDE. The Open Source AVR8 soft processor which is compatible with the Atmega103 was ported to the Papilio. Finally, the Arduino IDE was modified to support the FPGA board and the AVR8 soft processor. After a couple months of tweaking I was finally to a state with everything where I finally felt comfortable in saying that it is easy to use just like the Arduino is easy to use. To prove how easy it is to use I made a kit to show a real world example. Every time I ran into a question about how I should be doing something I always turned to the example of the Arduino. How much should it cost? I did a price analysis of the Arduino components and made my markup the same percentage as the markup for the Arduino. What kind of license? Creative Commons, just like the Arduino. But this is where I am getting stuck and was hoping for some advice.
The problem is that my experience in co-designing the Open Bench Logic Sniffer has exposed a big problem with releasing Open Source designs without a non-commercial clause. There are a lot of motivations for why I want to design Open Source hardware but one of the realities I face is that I need to be able to feed my family with sales of the hardware. What I learned from the Open Bench Logic Sniffer is that there is a big difference between the percentage that I think is fair for what someone who wants to manufacture and sell my design is and what they think. A Creative Commons license without some kind of protection can lead to a situation where others are making way more money than I am and I cannot feed my family and continue to make new designs.
Now, the Arduino seems to address this issue by Trademarking the Arduino name. I’ve taken the approach so far of using the Creative Commons Non-Commercial clause, but there is a big shortcoming with the Non-Commercial clause. The beauty of the Open Source community is that good people like the Arduino team release their work so that people like myself can come along and build something new on top of it. The non-commercial clause has the unwanted side affect of breaking that chain. Just like I am building on top of the Arduino work, I want people to be able to build off my work whether it is commercial or not. The non-commercial clause means they have to ask my permission and I have to grant them a new license before they can do commercial derivative works. This side affect is not really my intention for the non-commercial clause, all I want is to ensure that others can’t just manufacture and sell my design without my approval. I want people to build on top of my work and make new things but I don’t want people to just start selling my unmodified designs without making an arrangement that we both feel is fair. A straight Creative Commons license means that any negotiations with hardware manufacturers is pretty one sided, they get to decide what is fair and my opinion is just that, an opinion.
So after this long winded explanation I finally get to my question. If the Arduino team was starting over, knowing then what they know now, would they still take the trademark route or are there other alternatives that are better? I greatly appreciate not only the excellent example to follow but any advice on this matter.