Open source Project / Hardware

It doesn't mean that there's no license for the community and one for the creators. It means that there's one license for the community and no license for the creators - they don't need, it's their work.

Anyway, that's not the point. There are many good arguments to be made for opening up more of the project than we already have, and we need to consider them seriously. I'd just rather we didn't get distracted by a technical argument that's not even valid. We're better off discussing the overall goals and principles of the project and how it can best achieve those goals while following those principles.

Again, we've had many internal discussions about this issue and I'm hoping that we will continue to reconsider our position. At the moment, however, two members of the team are on vacation, and in any case, deciding this sort of overall strategy will take some time and effort. Certainly this is a valuable discussion and I hope everyone continues to weigh in with their opinions, but please be patient with us as we figure out the best way to respond.

One question, that wonders me allways, when talking about open hardware in general, is:

How could people actually participate in the design process of the hardware?

Think of the versioning systems (code managment systems) that exist for software sources (svn, cvs etc.) and imagine using them to keep track of hardware sources (files).
Anyone allready thought about submitting patches for hardware related stuff?

A simple netlist as textfile could at least represent a schematic. OK, I don't know, how we could generate graphical representations of the netlists, but I think such a system would be very cool and usefull. Maybe the open electric cad project http://www.geda.seul.org/ is a good starting point.
I know that automatically generated PCBs offer a whole univeres of problems in their own... But maybe their is demand and use for a middleway between manually doing the finish - component-by-component layout task - and letting users allow to conrtibute to the boards features and its variants in a rough, sketchy way.

I think if a hardware dependant project is also driven by a community, it would require thoughts in this direction - ways to allow some kind of teamwork, not only on the software, but also on the hardware description files.

Would this be something appreciated by the arduino crew and users?

Oli

I have a curious love it / hate it relationship with opensource projects. Take open office which Ive used for a while now. Its great for a free program and means I dont have to support an evil empire but there are many things that bug the crap out of me about it. It suffers from featuritis.... too many chiefs syndrome.

I like how currently there are multiple arduino clones popping up by well motivated individuals seeking to carve out niche applications using alternate main boards. These are however individually driven projects. To me the best part of the openness is the latitude for all these fringe type projects to flourish.... This includes not only the hardware but software and documentation as well. Whether anything from these alt sources ever become incorporated into the main project ultimately depends on how successful the smaller projects become and how motivated the individual.

I respect the foundations need to rein in a little and retain some control over the core concepts of the main Arduino project while leaving the rest of us free to run away with stuff. Keep the lid on the core Arduino if nothing else because they have to support it.

Compare the Arduino to the Basic Stamp... in its first 10 years the BS had 3 million units in circulation. Thats with extremely centralized design, support and distribution teams. It must be intimidating for the foundation, now with 10k out the gate, to even consider 1 million! Anyway, I really support what Massimo, David, Dave, Tom, et al have done up to know and am not sure I see a compelling reason to change it.

Ill stop rambling,
Brian

hi

I think the issue is really how the project is advertised.

While I don't agree with it, if the production files are kept "closed", the Arduino team needs to say this explicitly, rather than hiding the fact by omission. The Arudino project is over two years old, and yet this discussion is the first time that any mention of the Arduino's "open hardware/closed PCB" policy has appeared anywhere on the web. The fact that the PCB's aren't open has effectively been kept secret by just not saying it.

I say that because it took me about ten months from the point that I discovered Arduino to find out that the PCB files are actually closed. In those ten months I bought Arduinos, I taught Arduino to dozens of students, I lectured on Arduino and I wrote about Arduino in Make Magazine. After I wrote this: "...since the project is open source, all the plans, code, and instructions are available online free for those who prefer to roll their own" in Make, no one on the Arduino team contacted me to say "well, actually, that's not completely true..."

Anyway. To further support the project, I talked my university into buying $5000 worth of Arduino BT for my classes, and I spread the word on Arduino, all under the assumption that "Arduino is an open-source hardware project" that could be freely reproduced. So when I found out that the PCB files weren't actually open, I was a bit taken aback. To be frank, I wouldn't have invested that much energy if I had known that you were going to keep things like PCB files closed.

The fact that production of "Arduino" is closed wasn't, and still isn't, disclosed anywhere on the Arduino site: I had to ask one of the team who told me explicitly that they wouldn't allow others to reproduce "little blue Arduinos", and that the files aren't available to produce PCB's for shipping versions. Other team members subsequently confirmed this: production of the Arduino NG, BT etc is not open.

My guess is that Arduino would not have gotten so many collaborators and supporters if you had told them that the production and the PCB files was a "closed" affair. That just doesn't have the same cachet as "Arduino is an open-source hardware project".

Then I began to notice that this is an intentional strategy to prevent others from producing "little blue Arduinos". The PCB files for the shipping version aren't on the site anywhere! The schematics that are released are also usually out of date, or a few versions behind. Schematics for shipping versions are provided as PDF files, not Eagle .sch files that would promote reproduction; there's no production information, no gerbers no eagle files for shipping versions. And perhaps most importantly, until now, there has never been never been a mention or an explanation of the closed nature of the PCB files. Requests for Eagle PCB files in the forum go unanswered by the team.

That's not a strategy that's good for open-source projects: it's basically the same as the commercial approach to hardware. I tried again to get clarification on this from some Arduino team members, and this time the message got clearer: we will not allow anyone else to make "little blue Arduinos" that look like ours or use our name. Derivatives are OK, but the hardware franchise for "little blue Arduinos" is exclusively ours, and no one else is permitted to make them. That's an extremely commercial approach: protect your brand identity by controlling the way its trademark and look are used. Yes, derivatives are OK, but we reserve the right to tell you not to use the Arduino name on a hardware product, and don't copy our official version of the "open-source hardware" .

This just doesn't jive with the advertising, or the open-source spirit that the project is founded upon and has made it so successful. The Arduino team needs to make the "open-source" terms of the Arduino project explicit. Perhaps when you have the next team meeting you could talk about clarifying this, both on the web site and in the promotional material that gets distributed. Or maybe you will just release the files, that would be much better, for the Arduino community, and for the progress of open hardware. :slight_smile:

D

Daniel makes a very strong and compelling argument. I hadnt actually thought about the consequences of making something small and blue and calling it Arduino. I suppose because I had always assumed open meant open and didnt think there would be any sort of recourse. Now I can see that if I were to make a small blue variant of the Arduino with a nifty little name and marketed it as such I could get some heat for that. And then again I may not but I dont really know.

Something else that just occurred to me, and maybe this isnt the place to ask, but I am in the process of publishing my Arduino Programming Notebook on Lulu (at cost, non-profit) with a big emblazoned full color photo of the board on its cover. Did I cross a line with the name or the photo I shouldnt have?

I guess then Im in agreement with Daniel that a more clearly spelled out terms of usage might be in order. The way I currently read the CC Attribution Share Alike copyright notice, I can copy, distribute, and adapt the work (including for commercial means) as long as I attribute the creators and redistribute under a similar license. Under the precepts of Open Source this should extend to freely available hardware source files. That and Im not really sure how I could be held liable for making a green version of the decimilia (source files or not) and getting $30 for it instead of 35.

Unless of course the arduino only has open source software and its hardware is in fact not open source then that would make sense. Likewise it might make sense that the hardware is then published under an Attribution Non-commercial Share Alike license instead. That would keep things pretty clear and not have arbitrary decisions made of who can make what chunk of hardware with the Arduino moniker tacked on.

I was just looking at the monome project and they make it very clear on their site (once you find it): Their software is open source and free to manipulation etc. Their hardware is not. They make available the schematic only as a way to encourage personal hacking of a monome box. They do not publish their hardware layout for many reasons you can read about on their site. It makes sense and is spelled out clearly regardless of whether you like it or not. With that said you are more than capable of 'rolling your own' monome for personal use as long as you dont sell it. Its just more work that way.

Maybe the team should consider what is in fact open source, decide on who can use the Arduino name and for what purposes, evaluate how the information and source files are to be released and then make this explicitly clear under some form of a terms of usage. As it is now, things are too vague and it feels like you guys should be making the board source files available but aren't coming through. It says the "reference design" is CC'd but what is a reference design? Is that not the current format of the board?

Some things to toss around,
B

Definitely, things are not very clear at the moment. We're hoping to clarify a lot of these issues, but it takes a lot of conversation (both internal and external) about what the principles of the project should be. So far, things have worked okay by having a vague policy and addressing individual questions when they arose. Clearly we've not reached the point where it's important to have an official statement of our position, and we hope to have that ready as soon as possible (while still involving many people in the process of figuring out what that position is).

For instance, I have no problem whatsoever with the fact that third party vendors ("Modern Device Company", "Lady Ada") don't publish full CAD files, but they ARE listed and described as third parties.

Hi, can you please clarify what you mean by "don't publish full CAD files"?
I don't think there's a single project right now I have not released full CAD files under OS license, but if this is true I will correct it. Thanks! :slight_smile:

limor

ps. also im not sure where i'm listed and described as a third-party vendor. I am a distributor but that's different, no?

David:

one question for the team to consider is this: If the Arduino designs are CC attribution share-alike, how is someone supposed to attribute without using the Arduino name? For example if someone makes something called, for example, "FunkyDuino", can they put "based on the Arduino" on the board? Maybe the solution is to change the license to share-alike without attribution?

Just another of the many questions for your policy discussion.

D

one question for the team to consider is this: If the Arduino designs are CC attribution share-alike, how is someone supposed to attribute without using the Arduino name? For example if someone makes something called, for example, "FunkyDuino", can they put "based on the Arduino" on the board? Maybe the solution is to change the license to share-alike without attribution?

This is NOT an answer from the team just another users view:

After the Commodore 64 the next computer I bought was advertised as a "NoName PC-Compatible"...
...I bought an LCD yesterday that is HD47800 compatible....
I guess you will not run into trouble with the "FunkyDuino (Arduino compatible)" but with "Barduino" or "Charduino" you might get to close.

Eberhard

P.S: FunkyDuino ?? does that one have a soundsystem on board? I'll order one right now :slight_smile:

thanks eberhard

I just meant that if the name is trademarked, then using the word "Arduino" anywhere on the board is protected use that would have to be licensed, even if it's only to say "Arduino compatible" . Form my slim understanding of trademark law, it's ok to put something like "Arduino compatible in the product description, but you need permission first, and it can't usually be within the main title or name of your product. This makes it potentially very hard to attribute in accordance with the CC license. E.g. "Barebones Arduino", "Arduino Prootshield" etc would require trademark licenses/permission. It's an interesting can of worms, isn't it?

D

It doesn't seem that complicated to me. The plans for your new board will need to include a link back to the Arduino files that they're based on, as required by the CC license. That doesn't mean you can call the board itself an Arduino, as that's a separate (trademark) issue.

Plus, the license we're using also contains the following clause, just in case we needed it (though I don't think we do):

"If You create a Collective Work, upon notice from any Licensor You must, to the extent practicable, remove from the Collective Work any credit as required by clause 4(c), as requested. If You create a Derivative Work, upon notice from any Licensor You must, to the extent practicable, remove from the Derivative Work any credit as required by clause 4(c), as requested."

Thanks Mellis, I hadn't thought of that.

Maybe the real issue to clarify is how you'll allow the Arduino trademark to be used on physical designs?

The CC license doesn't cover the boards, only the designs in file/printed page form.

D

Plus, the license we're using also contains the following clause, just in case we needed it (though I don't think we do):

"If You create a Collective Work, upon notice from any Licensor You must, to the extent practicable, remove from the Collective Work any credit as required by clause 4(c), as requested. If You create a Derivative Work, upon notice from any Licensor You must, to the extent practicable, remove from the Derivative Work any credit as required by clause 4(c), as requested."

i dont understand what this means, or perhaps i do in which case i dont really understand what sort of situation this would used in.

can you give an example?

It basically means you can explicitly request that someone not credit you in a derivative work, even though the license ordinarily requires it. I'm not really sure why you'd use it either - maybe if someone created a derivative of your work that you hated so much that you didn't want anyone knowing it was based on something you did.

Switching to my artist hat, that clause is basically a moral rights clause. In most countries you get it by default, even if you have licensed the reproduction right to someone else. It prevents unsavoury uses of whatever your copyright is.... say someone wants to make an Arduino cruise-missile controller, and you're a pacifist, just as an example.

OOPS. Now we're gonna have the NSA tapping your phone lines, talking to a foreigner about cruise missiles. Sorry

D

It basically means you can explicitly request that someone not credit you in a derivative work, even though the license ordinarily requires it. I'm not really sure why you'd use it either - maybe if someone created a derivative of your work that you hated so much that you didn't want anyone knowing it was based on something you did.

Warning: I'm going to rant a little bit here

Is this something that the Arduino project really needs? I mean can you really force someone to not give attribution? And does this retro-actively modify the share-alike clause of CC? That is, if someone makes a derivative of evil-arduino do they have not give credit? or do they have to credit both or what?

If you ask me (which you didnt :slight_smile: ) this license-hacking seems like its unnecessary and, well, somewhat creepy. I mean, who cares if someone makes a shitty derivative?

Why do I feel strongly this? Well because I've seen what can happen when people try to destroy derivatives: Historically, some people on the NetBSD team hate(d) OpenBSD and the OpenBSD project leader and they would have loved to say "you can't call your project a BSD because we dont like your project, or you!" But (luckily) they couldn't.
Nobody really confuses the two projects, and some people still don't like OpenBSD but you can't really deny that is a BSD derivative, and a very good one that is quite popular with some. The flame war bogged down both groups and was a waste of f'ing time.

(I'm somewhat simplifying the long and tedious netbsd/openbsd flame war here but i think that's probably for the best :wink: )

I urge you to reconsider this clause, I see no positive outcomes and only bad ones. However, I will relent if you have a really good example of when this is essential to the survival of the Arduino project.

limor

Sorry, I wasn't clear.

That's actually part of the Creative Commons licenses and not something I necessarily think needs to or should be there, but that's what the license says, and that same clause is (I believe) in the licenses you're using for your works as well.

Sorry, I wasn't clear.

That's actually part of the Creative Commons licenses and not something I necessarily think needs to or should be there, but that's what the license says, and that same clause is (I believe) in the licenses you're using for your works as well.

??? jeez that's kinda retarded. well if its in the Default License then there's not reason to take it out. Sorry for the rant, I take it back! I thought this was an addition to the as-yet-unpublished Arduino License.

I read CC many years ago but didn't remember it. Mea culpa :slight_smile:

limor

ps. I still think its still a silly clause :slight_smile:

you know,

I'm starting to think that the files and the Arduino name should BOTH be open to anyone who wants to use them :slight_smile:

Then the team can promote, trademark and enforce a franchise on Diecimila, BT, NG, etc.

That just seems too darn simple. That way it's entirely equitable to all involved, as everyone has access to the Arduino name and designs to use as they see fit. Some will produce junk, some will produce fine quality things like Diecimila.

I think it's a mistake to think that the team really "owns" the Arduino name anyway... in theory, yes... but

a) it would cost 5 to 10K dollars per instance to prosecute offenders, and
b) the name gained its current value with the contribution of hundred of other people.

We're not talking Linux here :slight_smile:

Daniel

you know,

I'm starting to think that the files and the Arduino name should BOTH be open to anyone who wants to use them :slight_smile:

Well, I think it's probably better that they hold on to the name. It's a unique brand and also keeps confusion down. Someone could, otherwise, buy a thing with the word Arduino on it and be confused as to why its not working the way they expect or is incompatible with the software and then blame Arduino when really its that the clone is not compatible.

Just like generic drugs are the same as brand name, they can say "compare ingredients with Advil!" but they cant say "Advil"