Hi,
I see a possible professional use of the arduino platform.
Does anybody know about Arduino usasge in non one-off products that are CE-certified, EMC-tested etc.
I beleive the great benefit would be in the libraries, it actually does not add to the company bottom line when you implement just another serial driver.
I find that most of my software time is spent writing interfaces to specific ICs, that is in my view a non productive work.
I am so new to the Arduino community that I can't speak about the Arduino but I completely agree with you that companies could save money on a common solution like the arduino.
I am attempting to introduce the arduino to a company I used to oddly enough design graphics for by creating a more effective version of a marketing tool I designed while there. I think sub-$100 in parts with the arduino can save their dealers $1000+ in redundant parts in the original setup.
I am confident the reasons more companies don't use it is 1. lack of knowledge and 2. the current business mindset is proprietary is better. That is changing though. I was so thrilled this last semester of college when I got to give a lecture on technology to a class of my peers and I introduced the concept of open source to them. Some were skeptical but most thought it was a great concept for future businesses(after I explained cost savings of course).
I'd love to see a serious product rise based around the arduino.
I think that those not doing development would find the extra baggage of an Arduino to be a turn off. Why not just use an ATMega 168 and a few other parts on a custom designed PCB that holds all the other circuitry for the product? For small projects or proof of concept there isn't a better choice in my opinion.
In a typical industrial development project you spend typically 20% of your budget on hardware and 80% on software to support the hardware.
Looking at the software development budget, you spend again 20% on the actual functionality and another 80% on support functionality.
You probably need to redo the hardware, to get the board in a shape that is compatible with your product. But you can save 80% of your software budget thats 0.8*0.8 = 64%.
Another benefit is that you can start with your software development immediately, you do not need to wait for the first board prototypes to be finished, before you start developing.
The benefit for professional use is the libraries.
An Arudino is a fine "quick prototyping" environment, but I really don't think that the libraries are extensive enough to provide THAT much of a head start to a commercial application (compared to, say, the complete libraries provided with avr-gcc, or the probably-more-extensive libraries provided with a commercial C compiler.) The "environment" isn't much up to "professional" level either (note: I understand and even appreciate that it's not supposed to be.) (no debugging, no source control, poor error reporting, lack of assorted types of analysis, etc, etc.)
What might be nice is being able to hire from a large crop of people with "prior experience" programming arduinos (compared to any other particular microcontroller/compiler combination.) I've seen companies give up on one or more rather obscure architectures just because it was nearly impossible to get people to code for them.
To really catch on, the arduino libraries would have be more standardized to run on more varied hardware, which might be a bit tough given the relative scarcity (I think) of C++ compilers (vs standard C.)
I think once the ATmega328 hits the same price point and availability, we could develop the playground into more of a "CPAN for Arduino." CPAN is a massive repository of library code for Perl modules, and is really very extensive.
I think more of the library code should depend on others (inheritance, etc.), and more abstraction separation between concepts (accelerometer) and hardware (ADXL330). More peer review and revision. More consistency of approaches.
Yes, that's the direction I'm thinking in, but I belevie the focus should be on stability.
There is a great need to get some easily understood structure in the library
I'm not too fond of replacing "writing code" with "searching for code that might already be written and modifying it." Depending on complexity, amount of testing, and so on.
I think more of the library code should depend on others (inheritance, etc.)
Ah. Dependency hell. Just like trying to run compile open source linux apps in a new environment.