Why The Arduino Won And Why It’s Here To Stay
Posted: Tue Feb 15, 2011 10:44 am
Make Zine
I've been meaning forever to pick up on of these little buggers. After having built something with a ATmega168V (an ICE Clock - review coming soon!), I really want to play with one of these.The IDE Runs on Macs, Linux, and Win
The IDE works on a Mac, Win, and Linux, and it’s completely open source. The IDE is how you program the Arduino — it’s based on Processing (a graphics programming language and development system popular with artists and designers), which has been around for a long time. It runs on Macs and Linux, not just Windows, and that matters if you want to be inclusive. It’s based on a strong and well-supported backend, the open source gcc toolchain, and wrapped in Java, so porting is easy and bugs can be found and fixed. There are enough smart people using and working on the IDE to keep it going strong. Want freaky cool people to do neat stuff with your platform? You gotta have your IDE run seamlessly on a Mac and also Linux.
The Driver Actually Work On Macs, Linux, and Win
Again, like the IDE, the drivers to use the board work on Mac, Win, Linux, and the FTDI drivers “just work.” Sticking with serial, a well understood (but slow) interface, was a good call. Sure HID or something custom is cool and all, and can be much faster, but the serial chip works, can be used for debugging as well as programming, and easily slots into software tools like Java, Python, Perl, C, NET, BASIC, Delphi, MAX/MSP, and PureData, Processing, etc.
Libraries, Easy-to-Do Simple Things, Easy-to-Do Hard Things
There are tons of object-wrapped libraries to do complex things, like writing to SD cards, LCD screens, parsing GPS. And there’s are also libraries to do simple things, like twiddle pins or debounce buttons. We’ve written UART setup code 10 times for 10 chips and frankly, we’re tired of it. Much nicer to just call Serial.begin(9600) and have it sort out the registers for us.
Lightwight, Runs on the Metal
The code runs directly on bare metal, with a well-tested and understood compiler (we would even say that avr-gcc is the default/standard compiler for AVR.) It’s not interpreted like .NET or BASIC. It’s fast, it’s small, it’s lightweight, and you can use the HEX file to program fresh chips in bulk.
Sensors
The Arduino really took off because it has analog-to-digital input, in other words, you can take in sensor data like light, temperature, sound, or whatever using the low-cost sensors already on the market and get that into the Arduino easily. It also has ready-to-go SPI and I2C for digital sensors. This covers 99% of sensors on the market. You can’t easily do this with other platforms — it’s completely bizarre to see a BeagleBoard (great product) with an Arduino basically strapped to it just to get sensor data in.
Simple, But Not Too Simple
Many dev boards are historically enormously complex with a lot of added-on parts like LCDs, buttons, LEDs, 7-segments, etc,. showing everything it can do. Arduino has the bare minimum. Want more? Get a shield. There are hundreds of Arduino shields, from LCD to Wi-Fi, but it’s up to the user to add that. Shields add extra functionality easily, and there is a business incentive for others to make them.
Not Made By a Chip Maker
The board was not designed by a chip maker. Why is this important? Chip makers often want to show how their product is different so they add weird things to differentiate themselves. The Arduino highlights commonalities between microcontrollers, not the differences. This means that the Arduino is a perfect beginner platform – everything you can do with an Arduino you can do with any other microcontroller, and the basics will last you for a long time.
Low Cost
You can get an Arduino for $30, and we’ll probably see $20 Arduinos soon. Many dev boards start at $50 and could easily get to $100+, although now we’re seeing chip companies start to realize that its worthwhile to have a more pragmatic pricing strategy.
Open Source
While it’s nice that Arduino is open source, and commercial use is allowed if you make a clone, it’s not the biggest reason, which is why it’s down near the end of the list. However, that isn’t to say it doesn’t matter at all. Specialized derivatives can be made without paying someone or asking anyone. It’s open source hardware so a company or school can use it without any per-seat licensing. There’s no risk that it will be discontinued and the software gone forever. If you want a new feature, you can spend the time and get it added. When thousands of people have a small stake in something, or ownership, they care more. Does anyone even debate if open source software is a good idea any more?
That’s why it “won” (at least that’s why I think it won). There isn’t another platform that does this. Some are very close (like the Netduino, a great platform that fills a niche), but they still have a few more things to do. You might be checking off these points in your head with agreement, or you might be hyperventilating with a big reply forming about how FPGAs are so much better. Either way, unless you can check off each of these points, your platform isn’t ready to compete against the Arduino. Especially if you’re going to call it an Arduino Killer.
Why Arduino is Here to Stay
The barrier to entry isn’t a monetary one, it’s a philosophical one. This requires boldness and getting out of committee-think. A chip company needs to show off chips — they don’t care about Mac support, or writing tons of software, libraries, and IDEs. Chip companies are (historically) the ones who usually make the platforms. We’ll see some of the big players flood the market with subsidized hardware to beat the $30 price point of the Arduino, but that doesn’t matter if the Arduino support and quality stay high.
Why else is it here to stay? The community. How can you get 100,000+ people to jump ship? You can’t. To get close, you’ll need to develop something just like the Arduino, support its shields and accessories, and write a lot of code (something chip companies hate to do.) Great software for multiple systems, lots of libraries, drivers that work, simple, low cost, and open source. And you know what? I think that’s what the Arduino team really wants. They’re techno-hippies — they want to see other platforms with the same ideals — that’s the game they’re actually playing. And I think it’s what we all want, whether it’s called an Arduino or not.
If you want to beat them, you’ll need to take a leap and become them. The best solution for users is what really already won, and it’s here to stay. Long live King Arduino!