How do people share Arduino code?

Suppose I wrote some code for a specific device, like a UAV or whatever, using Arduino, and using Arduino libraries, how can I "open source" that code so that others can work on it, and keep track of revisions and stuff? I know open source software projects put their stuff on sourceforge and use git or something, but does Arduino have anything like that of its own?

does Arduino have anything like that of its own?

No, even the Arduino Core code itself is hosted on goggle.code.

Eberhard

Why dont you just post it here on the Arduino Forum where everyone can see the code? You could probably link it to google.code or wherever you have uploaded your code.

Why dont you just post it here on the Arduino Forum where everyone can see the code? You could probably link it to google.code or wherever you have uploaded your code.

Well the thing is I want other people to work on the code I have and then submit patches and extensions back, and have version numbers and everything, so that it can be a collaborative project. If I just post code here, and people go change it, they have another version when they add features, and their features wouldn't work with other people's features, and it would be duplicated work, and all that.

It's not that I'm a control freak; people would still be free to fork the code and do whatever they want. I just don't see this kind of collaboration in the arduino world. You have someone post saying "I wrote a routine to control widget X" and the code is open, but then tons of people probably grab the code and then modify it and it doesn't seem like there's an actual way to have arduino software projects, as-such.

Google code or Sourceforge would seem the obvious places - they have all the version controlling, bug tracking, patch submitting etc. infrastructure already in place for you.

Andrew

Right; I was about to do that; I figured I can use google code (using Mercurial) or Sourceforge or some other website to host my project. I just wanted to find out if there was a 'native' hub for doing that, or if there were any legal or ethical problems with doing that. I mean it's not C, it's Arduino. I don't know how these things work, especially with the Arduino libraries.

If I write an arduino program that uses no Arduino libraries, can I release that code under the GPL? What if it DOES use Arduino libraries (like the servo library or LCD library)? If I write a program in Arduino that does or does not use Arduino libraries, do I HAVE to release that code under a particular license (I would like to stay as open as possible)?

I just wanted to find out if there was a 'native' hub for doing that

No, unfortunately.

Many of us have ideas for things like this but time and getting it done is an issue. You'd also have to make it very nice to use ;)

Mowcius

...or if there were any legal or ethical problems with doing that. I mean it's not C, it's Arduino.

Open Source is Open Source... As long as the licenses of any external code you use are compatible with the license you choose to release under, no legal problems (other than adhering to the license you choose to use) would present themselves (note: I AM NOT A LAWYER :))... Ethics? Open Source = Sharing, freedom, non restriction in use, etc etc.... No ethical problem here either :)

Make a website, document your project, post about it here and gather interest. Market the project like you would any other item that you would want to put in many peoples hands.

Getting lots of people to contribute back would be another story all together. You need interest in your project before people would contribute, all things come to those who wait :)

I'd also recommend google code, it's got everything (aside from a decent website hosting -- they have google pages for that) that a project would need to get off the ground and soar!

Good luck, but most of all have fun doing it! :)