Why the Arduino Won and Why It's Here To Stay
ptorrone writes "For years, students, journalists, makers and old-school engineers have asked why the Arduino open source microcontroller platform has taken off, with over 100k units 'in the wild' — it's the platform of choice for many. MAKE's new column discusses why the Arduino has become so popular and why it's here to stay. And for anyone wanting to build an 'Arduino killer' (there are many) — MAKE outlines what they'll need to do."
I consider NetDuino/Fez to be more or less interchangeable with Arduino, but I do vastly prefer both. I find the .NET(MF) development environment far more productive for the projects I work on. Note I do understand NETMF is not applicable to all problems (for example, realtime).
It's cheap and affordable, yet it can do so much. The MakeZine section on it is great and has a ton of cool projects. I don't know why people are wondering what's so great about it, because it's really obvious why it is. When it comes down to it, an arduino is a $15 minicomputer.
Yes, it does.
There was a time when it was difficult and expensive to develop embedded applications. Then MicroChip came out with the PIC. The tools were free. There was lots of helpful documentation. You could build a PIC programmer out of junk box parts.
If you were a small developer, you wouldn't bother with a company like Philips (and the others) whose tools were expensive and whose documentation was Byzantine.
Arduino is one step better. It was designed to be used by artists. There are tutorials for everything. It is SO easy to use.
Of course, Arduino isn't a chip, it's a little board. The chip is Atmel's AVR. I don't know what Atmel did to deserve their good luck. I'm guessing that the hard work of the Arduino folks has really increased Atmel's market share.
The lesson here is that it isn't the goodness of the chip. (The early PICs were really unfriendly to C compilers.) You can have the best chip in the world but nobody will use it if they aren't properly supported.
It's technically not, but the syntax is essentially the same. Most of your standard C functions are around too, but not all. If you know C, you can essentially write a C program, and it will probably work.
I looked into microcomputer's to experiment with and finally went with the ARMmite Pro, only to find out later that it is a Arduino-compatible device and what Arduino is, somehow in all my microcomputer searching I had totally missed that device. The ARMmite Pro is a great little board to play with, ARM 7 running at 60mhz, can be programmed using Basic or C, and (apparently) pin compatible with Arduino, all for $30. Not an Arduino killer, but a great way to 'upgrade' from Arduino without loosing form-factor or add-on boards.
DEMETRIUS: Villain, what hast thou done?
AARON: Villain, I have done thy mother.
Shakespeare invents 'your mom'
Arduino is the project, Uno is the board. There's actually a few other boards they've created: http://arduino.cc/en/Main/Hardware
If you like them you may also want to checkout many of the other microcontrollers in a Digikey or Mouser catalog. I collect them myself. Everything from PIC to Atmel-based, to Zigbee. They're all quite fun.
The main advantage of the Arduino is it's open source design. The other controllers are not as customizable _before_ production. With arduino you can add things if you need them on board.
Tiger Blooded Bi-Winning Machine
All the reasons the guy listed for why the Arduino 'wins' are not unique to the devices. You can get all of those same things out of a radio shack basic stamp.
Arduino won because the stuck a decent microcontroller on a solid board (I'm ignoring the absolutely retarded pin spacing issue that pisses everyone off) at a decent price with a serial boot loader already burned to the chip. The ATmega chips were popular long before Arduino, so when it came out suddenly all of us who had been futzing around with ATmega's for years finally had a source for a preassembled prototype board rather than constantly cobbling our own together. I've still got several PCBs I etched with a generic prototyping layout in my shop.
They took the need for an Atmel ATmega programmer out of the equation but otherwise you get just a slightly larger than the chip itself prototyping board.
The Arduino software is complete ass, the only reason anyone uses it is because they don't know there something better ... like say ... entering your code from the command line with cat > filename && cc filename. The libraries, while relatively easy to use are painfully slow and bloated for no reason, which is important when your counting clock cycles on microcontroller.
Arduino didn't win because its Arduino, it won because it used a microcontroller that had already cornered the market.
There will multiple ATmega chips (the ones used in the Arduino) in every household before the Arduino came into existence.
Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
I literally just opened the box of my first Arduino board about 15 minutes ago. I installed the IDE, plugged it into my computer, loaded the drivers, and sent a few sample programs to the tiny board with -zero- problems.
With an out-of-the-box experience like that, it's no wonder the darn thing is so popular.
LOAD "SIG",8,1
LOADING...
READY.
RUN
LaunchPad does.
I don't see why this hasn't gotten more fanfare or attention.
A full dev kit costs $4.30. Some of the Arduino stuff I've seen starts at $40. You get 2 chips, a USB programmer, dev environment AND.... a real C environment. Not another language.
It has a ton of other add-ons like the EZ430-CHRONOS watch. After growing up watching Who Framed Roger Rabbit, who hasn't wanted to unlock their doors with Shave and a Haircut.
And once a lot of people were using it, they all started releasing their code. Sure there are other great code repositories, PIClist, AVRfreaks, but many of the people there are pretty DIY so they'll exchange snippets of code that they build into something finished. Arduino code is often complete: download this program to do this entire process. That mindset has attracted lots of people, who have contributed even more code, so it benefits from a networking effect, so now anyone who is releasing anything for the electronics experimenter market has to provide an Arduino sketch that handles the hardware being offered -- and that drives it even further.
There are cheaper platforms, there are faster ones, there are ones with much better hardware (and some that are all three, the MSP430 being a likely example) but nothing that combines the simplicity and codebase of the Arduino.
Nostalgia's not what it used to be.
Lots of interesting stuff out there in the world of micro-controllers, and now lot of it get available at reasonable prices. Not only as those dreaded $999 development kits.
If you look for something more powerful the STM32VLDISCOVERY http://www.st.com/internet/evalboard/product/250863.jsp, is a nice alternative at about $10. You get a modern and powerful ARM Coretex M3 with 128 KB Flash and 8 KB RAM. With lots of nice peripherals included.
(a listing can be found at http://arduino.cc/en/Main/Hardware )
I have tried to use Arduino boards in the past, and while they're really cool for hobbyist stuff, they are very hard to integrate into battery-operated things:
1. The operating voltage is 5V (some may be 3.3V, I forget) and draw a lot of current. Batteries that supply this kind of voltage are HUGE. It would be really nice if they had a design that was optimized for low voltages and low currents, like for mobile sensing, so that I could use coin cells.
2. The devices are really memory-limited. The Uno, which is probably the most popular, has something like 2kB of ram. I used the board to interface with some sensors for tracking a flight trajectory on-board, and I could only record a few seconds of data before running out of room. Wireless transmission wasn't really an option because of power (= more batteries) limitations.
3. Connecting to USB resets the board, wiping the memory, unless you cut a trace on the board. This is supposed to help facilitate loading new programs, but becomes an annoyance if you wanted to use it to transfer sensor data stored on-board to a computer. When you cut the trace to disable the autoreset, it becomes difficult to time the reset button manually so that your program uploads.
Overall, as an EE, I was very impressed at how easy it was to use, but I think the issues I mentioned warrant some fixing if Arduino is going to be used for things like sensing.
Well, look at it this way. An arduino is a complete circuit with a couple of digital and analog inputs and outputs that you can control. People love to drive LEDS with them for example and it's very easy. For example, to drive a led all you need is a resistor and the led. You connect the resistor to an output pin of your choice and attach the led to the resistor. The negative side of the led goes into the groundpin on the arduino. If you want that led to blink this would be you code: http://www.arduino.cc/en/Tutorial/BlinkingLED With another ledpin though, because pin13 happens to be the build in led on the Arduino. As you can see it's just C. So you have a complete environment that makes it very easy to connect hardware like sensors and you have this very easy and readable programming language. That makes for very easy and rapid developing. This doesn't dominate the pic and microworld by a long shot. It's far to expensive for mass production of projects. But it does dominate the hobby world. And people make really cool things with them. From laserharps to autohovering quadrocopters. And ledcubes. Lots of led-cubes lol. Look at youtube for it when you have some time to burn.
Same goes for Microchip and the PIC family (processors, not development boards). I would expect they are quite happy to cede a few 100k's of chips over the past few years, given that their main business line is everything that has an embedded processor. I doubt they could actually measure the market loss to Arduinos.
politicians are like babies' nappies: they should both be changed regularly and for the same reasons
I ordered the Launchpad a week or two after ordering my Arduino, and it took about two months to arrive :-) You're expected to know a bit more about what you're doing to use the MSP430, the programming environment's less friendly, the chip has even less memory, and installing the timer chip on the board requires surface-mount soldering, which is a lot harder to learn than regular through-hole. I'll get around to it in a couple of months, after my Arduino projects. (And the wristwatch version is amazingly cool.) There are also a couple of other cool boards to play with, such as the Atmel-designed AVR Butterfly which includes an LCD, some Freescale stuff, and a few others.
This month, however, I'm working with 555 timer chips, because sometimes an Arduino or MSP430 is just way too powerful and you need an even more minimal environment to work on, plus there's a contest and it's amazing what you can do with such a simple tool, and I've got the breadboards and LEDs and resistors around from the Arduino anyway. And the Arduino's a convenient power supply and voltmeter while I work on it.
Arduino's a nice programming environment, and it comes packaged with enough software, hardware, and examples that you can pretty much do anything you want at whatever balance of complexity you want. It's complete enough to get started and see how much you can do. You can start off high-level, try the examples, and then either go for larger projects or head down to the bare silicon, and once you've done stuff at the Arduino-board level, if you want to build more stuff with raw AVRs you've got all the tools you need.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
I got into Arduino last year while looking for interesting toys to play with my kid. Even I got a EE as part of my double CS/EE major 15 years ago, I haven't really done any electronic after college. Arduino provides a quick way to get started. Out of box with easy to use IDE, I can make stuffs entertaining my kid and myself in no time.
The experience getting into Arduino reminds me a lot of the beginning days of Linux. There are more mature commercial options out there (e.g. Solaris, IRIX, even HP/UX) and other competing open source like Net/FreeBSD. Even GNU/Hurd was making progress. But one thing Linux got was a friendly community of beginners. Going through the Arduino forum gave me the same feeling of going through Linux forum back in 95: a lot of excitement about this and willingness to help each other and share. That's defintiely one thing other communities lack. One gets "did you real the source?" reply posting anything to a BSD group.
That's almost parallel to where Arduino is today. There are no lack of better or cheaper alternative but most of them are either established embedded communities or serious lack of documentations. Not friendly at all for the beginners. Arduino gives the beginners a friendly place to get started.
And Arduino goes behind just a AVR based board. It's really a ecosystem with standardized IDE and peripherals. Most people's first critics of Arduino, especially those already in the hardware hacking, is the use of AVR and often cite 8bits and the shortage of AVR last years as problem with Arduino. However, I don't really see that as a short coming of Arduino. I just got a Leaflab's Maple which is a ARM based board with Arduino compatible pin layout and IDE. Getting my projects over to Maple from Arduino is smooth. I don't see Maple as a competitor to Arduino but a member of Arduino family.
The article is right on. There will be a lot of competitors now Arduino is on the spotlight but most of them will fail because they don't get the point of Arduino. It's not about raw CPU power or fine point of the system components, it's about community. And ones don't win the hearts of the community by belittle the community's core.