Larger Arduino projects

Arduino itself is a fairly large project in the open source philosophy, but I'm just wondering why there don't really seem to be any collaborative projects done for it.

By analogy, Linux is a core project and their are thousands of peripheral projects to develop things on the platform.

We could have people working together to develop more advanced shields as well as software.

There are a lot of excellent projects being done on the platform by individuals, but there's only so much that can be done that way.

RepRap would be a good example of what I mean, but it's the only one I can think of. We should have a complete sourceforge around the Arduino platform.

That is why Freeduino (www.freeduino.org) was created. Arduino is an open source hardware and software project but the name Arduino is trade marked by the Arduino Team. Some variations were created, like the lilypad and fully sponsored by the Arduino Team. I think the team wants to see "significant changes" in the derivative work for them to get interested in and sponsor it. With Freeduino, you can do whatever you like... there are many derivative work already done.

A lot of discussion already passed through this forum about this topic.

There is already quite an ecology of work based on arduino and people have been doing all sorts of work and extensions with arduino.

Remember that linux has been around since 1991 while Arduino was usable only from ,say, september 2005. considering this you can see we have come a long way since then.

My personal option is that what makes arduino different from Linux (which is also trademarked) is the fact that it is aimed at beginners therefore whatever is called arduino has to provide certain "user experience".

The reason why I (with my friends) created arduino is because all the platforms that were available at the time were designed by engineers where the "user experience" of the end user was never considered.. we wanted something that you could use really quickly.

From that moment every 2 weeks we get the classic engineer that says "why do you need arduino when you can put a pic ina breadboard and program it in assembler for 2 dollars"

this is what they consider "user exeperience" :slight_smile:

That is why Freeduino (www.freeduino.org) was created. Arduino is an open source hardware and software project but the name Arduino is trade marked by the Arduino Team. Some variations were created, like the lilypad and fully sponsored by the Arduino Team. I think the team wants to see "significant changes" in the derivative work for them to get interested in and sponsor it. With Freeduino, you can do whatever you like... there are many derivative work already done.

A lot of discussion already passed through this forum about this topic.

Freeduino is just a re-release of Arduino. I'm not talking about that or even derivative works of the core system. I'm talking about projects that use the core system.

For example, a few people are separately working on Arduino ethernet but it's slow-going and competing formats doesn't help anyone because whatever results will never have as rich a degree of community support because that support will be divided.

Another idea I have but is a huge scope for one person would be a software/firmware combination to use some form of wireless to clone Ambient Devices...and Orb, a set of panel meters, whatever. But there's also substantial desktop work to serve the data. Plus creating the wireless protocol on low cost hardware.

Motor control is another example. LadyAda has a decent shield and support library, but she's only one person and her board doesn't have much power handling capability because of her driver IC's. Why not a community driven version that uses discrete higher power components? I haven't seen decent docs for the Freeduinio driver, but my understanding is it only supports one motor and doesn't take external power so has very, very limited capabilities. I'd love to see a project around a commonly available remote control car to make a standardized robotduino platform.

I have other ideas too, but I'm sure the community can come up with even better ones (which is my point)

There is already quite an ecology of work based on arduino and people have been doing all sorts of work and extensions with arduino.

Exactly, which is a good thing. But ther is no framework in place where I can say "I've got this project I'm working on, the scope is getting big, does anyone want to co-develop it with me".

Without that framework, there is too much overhead in setting up a website for the project, getting people together to discuss it, etc. So chances are my project will just be put on the back burner or be hacked into semi-funcitonality and never benefit the community.

Great points, Oracle.

As Massimo mentioned, there are a lot of people building on Arduino: making new board designs, shields, libraries, etc. But, as you say, it's not so easy for those people to collaborate.

What do you think would help that process?

I've been toying with the idea of an Arduino playground subversion repository that would be publicly accessible. Would that help coordinate development? Anyone's welcome to use the playground for documentation or gathering ideas, as, for example, Hans + co. have been doing with Firmata: Arduino Playground - Firmata. I'm also happy to create mailing lists if there's a specific need, or you can just email the developers list. What else would be useful?

Have any particular projects in mind?

Great points, Oracle.

As Massimo mentioned, there are a lot of people building on Arduino: making new board designs, shields, libraries, etc. But, as you say, it's not so easy for those people to collaborate.

What do you think would help that process?

Something like soruceforge.org, though that is much too large scale and overwhelming for what we need. For starters we'd have to have a place to list open projects, that could be another section on the forums, one forum per project, and so it doesn't flood the page, it should be something users default to not seeing but have the option of turning it on.

Is there some way pages in the wiki can be set up so the administrator of each project can assign edit permissions to users? That way the wiki could serve as a place to collaborate and present the projects.

Have any particular projects in mind?

Another advantage is within a project we could share costs of having prototype PCBs made. Get a panel made up and distribute the boards to the development team, rather than one person having a bunch of prototype boards when they just need one or two.

My projects fall into two categories. Elements to be incorported into a device and complete devices.

In the former category, a shield with small colour LCD such as Color LCD 128x128 Nokia Knock-Off - LCD-00569 - SparkFun Electronics plus, of course, a library to make it as simple as possible to use.

Another idea is a new category of subshield along the lines of Dwarf boards, where I can plug in several modules to rapidly build hardware because hopefully I have modules for most of what I need to tack onto the project (like one with 8 LEDs, one with a few panel meters, one with a few pots, etc). This might also need a full shield which brings some IO out to stanardized headers.

In the complete projects category, the robot I mentioned. With a development team on hardware and software it's reasonable to make a fairly robust general purpose platform rather than just each person specifically tuning it to their needs while reinventing the wheel. Then users can come in and create derivative projects around the robot platform.

This one is probably too simple to bother as a collaboarive effort, but a wireless trivia buzzer. I only put that one up as an example because I'm having a lot of trouble dealing with the IR communcation so it's an example of how having a project framework would let me post it somewhere other developers might decide they like the idea enough to join in and help or take it over.

There is already quite an ecology of work based on arduino and people have been doing all sorts of work and extensions with arduino.

Exactly, which is a good thing. But ther is no framework in place where I can say "I've got this project I'm working on, the scope is getting big, does anyone want to co-develop it with me".

Arduino makes it possible for people from 'all walks of life and industry' to engage in electronic applications development. Those 'classic engineering types', may know how to "put a pic in a breadboard and program it in assembler for 2 dollars", but would they know how to apply that capability to create any number of "tiny" "seemingly insignificant" innovations that could end up saving millions of dollar$ for the agricultural industry, or any industry for that matter which is not directly related to their engineering skill-set?

Yes there are some, but thanks to Arduino, there will be "a lot" more who don't think like 'classic engineers'. And with that, will come innovation and new inventions that no one's ever thought possible because the cost of prototyping and undertaking feasibility studies, have largely been limited by how many 'classic engineers' you could afford to pay.

So there will always be those projects that have the potential to harvest substantial commercial rewards. And while it's a nice thought to want to share those projects with your fellow ArduinoBeings, does anyone really know who's keeping an eye on these forums armed with a patent application?

The advice Arduino should be giving this new breed of innovator/inventor, is "watch" what you put in the public domain, particularly if it hasn't been done before, or even if you are making an existing technology different or more economically.

If you haven't already browsed the USPO, you'll be absolutely appalled the things the weirdo's of the world have slapped patents on. I chanced across one a few weeks ago filed in 2007 that could have quite well "been inspired" by some of the innovating that's gone on here.

And with regard to collaborating, there are people here who have a mind-set that their advice is worth more than a "thanks". And indeed, who's to say they'll be remunerated for contributing to a project that does eventually make money?

So that's part of the dilemma as I see it, which is different from collaborating on open-source software applications. With software, everyone's got a copy they are free to use and distribute, but hardware is an entirely different ball game because what gets designed here, might well end up inside the next microwave oven - and who will be the wiser?

I like the idea of having a set of forums here - maybe a category of forums - for "group projects". Would this be a useful way to get started? Forums: proposed projects, projects in process, completed projects? Or proposed, hardware, software, etc?

I'm to the point in my own project (Array of Optoisolators - http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1204135553/6) where I'd love to collaborate with others and get some prototype boards built. More specific forums for this would be great!

These projects are beyond the scope of an Arduino tinkerer, so they shouldn't be mixed in with, say Freqently-Asked Questions!

Arduino makes it possible for people from 'all walks of life and industry' to engage in electronic applications development. Those 'classic engineering types', may know how to "put a pic in a breadboard and program it in assembler for 2 dollars", but would they know how to apply that capability to create any number of "tiny" "seemingly insignificant" innovations that could end up saving millions of dollar$ for the agricultural industry, or any industry for that matter which is not directly related to their engineering skill-set?

I do have the classic engineering (well actually computer science with a strong hardware component) background, and I've used those $2 pics in assember for years. And I love Arduino.

Keep in mind, the ATMEGA168 is basically a $2 chip as well. Arduino is all about the environment around it, from the easy USB interface to the software tool. It's fantastic for all the reasons you say. Even with PICs, it's a lot of work in assembly, and then when the 16F series can't cut it, it's a whole new learning curve for the 18F. AVR's might be just as bad, but I love the fact that I don't even have to know if that's true.

Yes there are some, but thanks to Arduino, there will be "a lot" more who don't think like 'classic engineers'. And with that, will come innovation and new inventions that no one's ever thought possible because the cost of prototyping and undertaking feasibility studies, have largely been limited by how many 'classic engineers' you could afford to pay.

I certainly think it helps me use the Arduino to think like a "classic engineer"

And with regard to collaborating, there are people here who have a mind-set that their advice is worth more than a "thanks". And indeed, who's to say they'll be remunerated for contributing to a project that does eventually make money?

So that's part of the dilemma as I see it, which is different from collaborating on open-source software applications. With software, everyone's got a copy they are free to use and distribute, but hardware is an entirely different ball game because what gets designed here, might well end up inside the next microwave oven - and who will be the wiser?

If you want to be renumerated for your work, you're in the wrong place here. First of all, free open source software is used all the time in commercial software, both illegally and legally. There are companies who take an open source project, reuse the code, and sell the result, and it's not hard for the developer to prove it's their software. Slashdot is filled with examples.

In the hardware example, if I release my project under an open source license, and somebody uses it in a microwave and sells a million of them without giving me a cent, that would be perfectly allowable under the idea of open source because they're selling you the microwave hardware and giving you my design for free.

I'm to the point in my own project (Array of Optoisolators - http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1204135553/6) where I'd love to collaborate with others and get some prototype boards built. More specific forums for this would be great!

These projects are beyond the scope of an Arduino tinkerer, so they shouldn't be mixed in with, say Freqently-Asked Questions!

That's a good idea, and I'd thought of a relay board. I hadn't thought that far ahead, but it's probably a good idea to have optoisolators between the Arduino and relay coils too :slight_smile:

I do have the classic engineering (well actually computer science with a strong hardware component) background, and I've used those $2 pics in assember for years. And I love Arduino.

Good for you, but that wasn't exactly the point. I was merely emphasizing the empowerment Arduino gives to non-engineering types, that could result in products emerging here having unforeseen commercial value.

Keep in mind, the ATMEGA168 is basically a $2 chip as well. Arduino is all about the environment around it, from the easy USB interface to the software tool. It's fantastic for all the reasons you say. Even with PICs, it's a lot of work in assembly, and then when the 16F series can't cut it, it's a whole new learning curve for the 18F. AVR's might be just as bad, but I love the fact that I don't even have to know if that's true.

The 168's a $3.45 chip, add shipping and it's closer to $5. The Arduino is more powerful that it's given credit for (especially at any of the AVR forums) it's an enabling technology that has yet to realize it's full potential.

I certainly think it helps me use the Arduino to think like a "classic engineer"

"Personally", I think like a consumer which is what makes the Arduino community quite unique, everyone thinks differently.

If you want to be renumerated for your work, you're in the wrong place here. First of all, free open source software is used all the time in commercial software, both illegally and legally. There are companies who take an open source project, reuse the code, and sell the result, and it's not hard for the developer to prove it's their software. Slashdot is filled with examples.

In the hardware example, if I release my project under an open source license, and somebody uses it in a microwave and sells a million of them without giving me a cent, that would be perfectly allowable under the idea of open source because they're selling you the microwave hardware and giving you my design for free.

Yeah I wasn't referring to "me" 'wanting remuneration' "thanks", I'd contribute more for free if I didn't think my advice would put people on the wrong heading.

I've contributed to several open source CMS's over the years so I know those ropes very well, and you might be comfortable giving away your hardware designs for another to profit, but others wouldn't / aren't - even the Arduino people are here to make money, and they deserve to, there's more "commercial" happening here than is immediately transparent :wink:

The main difference from a software open source project and hardware open source project is that in a certain point in time, investment money is needed. Software can be developed end-to-end with just brain power and some PCs and laptops, and free software tools, but with hardware it is more difficult. Even sharing eagle files is not as easy as sharing and version controlling a source code.

@Oracle: you are wrong about Freeduino being just a clone of Arduino. In the project, we experimented with sharing tools, email, forums, discussed how to version control hardware design files, how to fund prototype runs, and a lot more. Maybe the result was a replicated Arduino, but it took 1 month of heavy interaction within the team.

You will soon realize that money is what is driving all this parallel chaotic development of shields and derivative boards, nothing else. And I think it is ok, because money is needed in open source hardware projects. If you think ladyada's motor shield board has limitations, the open source project you propose of a motor driver using different components will satisfy some users, but other users will find limitations as well... it is a never ending story.

Linux works because the kernel, the main component of the linux infrastructure, is still controlled by Linus. If not for Linus controlling the kernel, I am pretty sure that we could have 1,000 versions of linux (and not distros, I mean 1,000 kernels) hanging around.

We still have a lot of road ahead in the open source hardware arena, so any ideas are welcome... and as we already discussed within the Freeduino team, if we can find a way to SHARE the money produced by the project for all the people that contributed to a project, then we will have a real open source hardware paradigm.

For me, the MAIN VALUE of Arduino is in the software. It is what makes Arduino what it is today. The hardware, is just a bunch of standard components and a de-facto header layout standard... that's it. The day we can make Arduino IDE work with ANY microcontroller, then we will see derivative boards growing exponentially... going to a faster or fatter AVR, it doesn't change much... finding a way to eliminate the USB chip, you are just cutting a couple of dollars on the cost of the board... the POWER is in the SOFTWARE

The 168's a $3.45 chip, add shipping and it's closer to $5. The Arduino is more powerful that it's given credit for (especially at any of the AVR forums) it's an enabling technology that has yet to realize it's full potential.

Not that it's the point, but the ATMEGA168 is $2.58 at Digikey when you buy 25. The most comparable PIC I've used is the 18F252 which is $5.30 when you buy 25. The 16F648A I have a lot of experience with is $1.90 each for 25, and much less capable. IMO, the PIC is not a cheaper option, just different.

I've contributed to several open source CMS's over the years so I know those ropes very well, and you might be comfortable giving away your hardware designs for another to profit, but others wouldn't / aren't - even the Arduino people are here to make money, and they deserve to, there's more "commercial" happening here than is immediately transparent :wink:

For what the Arduino boards cost at retail, and given that they've sold something over 10,000 "genuine" boards, I would doubt very much that they've made minimum wage for their time. I'm sure they'd love to profit from it, but so far, they're more interested in growing the brand :slight_smile:

The 168's a $3.45 chip, add shipping and it's closer to $5. The Arduino is more powerful that it's given credit for (especially at any of the AVR forums) it's an enabling technology that has yet to realize it's full potential.

Not that it's the point, but the ATMEGA168 is $2.58 at Digikey when you buy 25. The most comparable PIC I've used is the 18F252 which is $5.30 when you buy 25. The 16F648A I have a lot of experience with is $1.90 each for 25, and much less capable. IMO, the PIC is not a cheaper option, just different.

I've contributed to several open source CMS's over the years so I know those ropes very well, and you might be comfortable giving away your hardware designs for another to profit, but others wouldn't / aren't - even the Arduino people are here to make money, and they deserve to, there's more "commercial" happening here than is immediately transparent :wink:

For what the Arduino boards cost at retail, and given that they've sold something over 10,000 "genuine" boards, I would doubt very much that they've made minimum wage for their time. I'm sure they'd love to profit from it, but so far, they're more interested in growing the brand :slight_smile:

@Oracle, it is obvious you are not the chosen one ;)... you need to see the forest, not the tree :o.

@Oracle, going back to your original post, as you are proposing a co-development of projects AROUND Arduino, then I think it makes a lot of sense. Let's find a way and let's do it. I love Arduino as well and I want to see it's potential grow to the infinitum... I am also interested in funding open source hardware projects around Arduino.

I was thinking a lot about expandable micro-shields based on i2c bus (the easiest way to connect multiple devices without having to arbitrate I/O pin usage, etc)... and newer sensors are coming digital (i2c, SPI) and in packages that are not hobbyist friendly that needs some sort of cooperative group developing boards for the tiny devices and manufacturing them at reasonable costs.

The main difference from a software open source project and hardware open source project is that in a certain point in time, investment money is needed. Software can be developed end-to-end with just brain power and some PCs and laptops, and free software tools, but with hardware it is more difficult. Even sharing eagle files is not as easy as sharing and version controlling a source code.

This is really something that puzzles me about how people think. You say "just brain power" but will happily put in hundreds of man-hours of work. Yet there's this block about spending a couple of hundred dollars ordering some PCBs and parts for a small run. Even to the point of spending extra tens of hours to save tens of dollars. For something I've spent 100 hours designing, putting in $200 to see it to fruition just doesn't seem like a problem.

@Oracle: you are wrong about Freeduino being just a clone of Arduino. In the project, we experimented with sharing tools, email, forums, discussed how to version control hardware design files, how to fund prototype runs, and a lot more. Maybe the result was a replicated Arduino, but it took 1 month of heavy interaction within the team.

But why couldn't you put all that effort into a result that wasn't just a replicated Arduino? You could have built something around a larger chip that's code compatible with the original but also gives you 8 more IO for example (so the code wouldn't be backwards compatible but you could run any classic arduino code).

You will soon realize that money is what is driving all this parallel chaotic development of shields and derivative boards, nothing else. And I think it is ok, because money is needed in open source hardware projects. If you think ladyada's motor shield board has limitations, the open source project you propose of a motor driver using different components will satisfy some users, but other users will find limitations as well... it is a never ending story.

The finances just don't add up. If you build something that costs you $20 in parts and you sell it for $30 (say a moderate arduino shield), a sucess might be to sell 500. That's $5,000 in profit for all the time you spend collating kits, ordering parts from a few suppliers, having PCBs made, shipping off all those packages to customers, etc. There's much easier ways to make $5,000 (get an evening job flipping burgers at mcdonalds). And that's only if you're sucessful. You might invest in a small initial run and nobody is interested. There's an investmet/risk factor.

I used to be involved in the indie board games scene, the finances for a small run game aren't all that different from a small run open-source hardware project.

Linux works because the kernel, the main component of the linux infrastructure, is still controlled by Linus. If not for Linus controlling the kernel, I am pretty sure that we could have 1,000 versions of linux (and not distros, I mean 1,000 kernels) hanging around.

And the core arduino software and official hardware is controlled by the team here. We don't have 1,000 different 99.9% compatible versions. Arduino can work that way and having most of the developers writing the apps, libraries and expansion hardware.

For me, the MAIN VALUE of Arduino is in the software. It is what makes Arduino what it is today. The hardware, is just a bunch of standard components and a de-facto header layout standard... that's it. The day we can make Arduino IDE work with ANY microcontroller, then we will see derivative boards growing exponentially... going to a faster or fatter AVR, it doesn't change much... finding a way to eliminate the USB chip, you are just cutting a couple of dollars on the cost of the board... the POWER is in the SOFTWARE

It's a given that the main value is the software. Otherwise it's a cheap mid-range MCU on a basic dev board. It's the software that makes it everything it is. But doesn't the Freeduino use the original software and bootloader? Your posts seem to contridict each other. You talk about all the effort to build freeduino and then say it's just a bunch of standard components to a header layout that was also provided to you?

I'm kind of confused about what you're trying to say.

@Oracle, going back to your original post, as you are proposing a co-development of projects AROUND Arduino, then I think it makes a lot of sense. Let's find a way and let's do it. I love Arduino as well and I want to see it's potential grow to the infinitum... I am also interested in funding open source hardware projects around Arduino.

Exactly, I want to see its potential grow.

Funding shouldn't be much of an issue, it's putting the cart before the horse to say "I've got $1,000 to build a shield, what should I build". To me, it's more logical to say "I've got this great shield, now how do I pay to have it produced". And you prove my point, you've made it clear that if someone comes to you with a good shield design, you'd fund it.

Why would you stifle creativity by only making a design once you have the funding to produce it? That's just illogical to me.

At the worst case a team can pre-sell the boards. If 50 people each give me $20 now to pay for a newly designed shield, I can have a batch made and ship them a few weeks later. And since it's open source you can see exactly what you'll be getting before you pay the $20, even though the item isn't made yet, so you won't be inhibited by being unsure if it's what you want. That's another technique used in indie board games, pre-selling the initial run.