Each month, I’ll be posting a couple of new editorial-style columns here on Make: Online. These pieces are meant to get you thinking, to stir up discussion and debate, maybe even freak you out a little. My first column is called “Why the Arduino Won and Why It’s Here to Stay.”
In about a week, a rep from a large chip company is going to stop by and show me another “Arduino-like platform,” aka The Arduino Killer. This a pretty regular occurrence around here; every month or so there’s a company or person who wants to make the “next Arduino.” They usually contact me because I’ve covered the Arduino for years, helped get it in the maker world, and I use it daily in my work at Adafruit. I think it’s had an amazing impact on electronic hobbyists and artists, perhaps as much as the personal computer in the early days (Homebrew Computer Club, etc). There are more than 100,000+ Arduinos on the market, and by my estimates, a lot more when you add in the derivatives (approximately 150K as of 2/2011). Within the next 5 to 10 years, the Arduino will be used in every school to teach electronics and physical computing — that’s my prediction. There’s no going back.
Most of the time these Arduino-Killer brain-picking sessions end with well wishing, a list of things to consider if they want to kick Arduino in the pants, and that’s that — they usually never really do it. There are a few articles about Arduino, with some great history, but I want to address why it appears to have “won.” But, saying something will be the defacto standard is risky — it’s also too early, right? Saying something won will also cause some debate, and that’s fine — our new comments system works great now (so debate away). I think it won, I’m going to tell you why and why it’s here to stay. If you’re looking to make something to beat the Arduino, I got you covered — here’s your recipe. Let’s get cooking!
What is an Arduino?
Let’s start out with how the Arduino team defines it:
“Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It’s intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.
“Arduino can sense the environment by receiving input from a variety of sensors and can affect its surroundings by controlling lights, motors, and other actuators. The microcontroller on the board is programmed using the Arduino programming language (based on Wiring) and the Arduino development environment (based on Processing). Arduino projects can be stand-alone or they can communicate with software on running on a computer (e.g. Flash, Processing, MaxMSP).
“The boards can be built by hand or purchased preassembled; the software can be downloaded for free. The hardware reference designs (CAD files) are available under an open-source license, you are free to adapt them to your needs.”
The “what” is still a little vague, and that’s the Arduino’s strength. It’s the glue people use to connect tasks together. The best way to describe an Arduino is with a few examples.
- Want to have a coffee pot tweet when the coffee is ready? Arduino.
- Want to have plushie steaks glow? Arduino.
- How about getting an alert on your phone when there’s physical mail in your mailbox? Arduino.
- Want to have a Professor X Steampunk wheelchair that speaks and dispenses booze? Arduino.
- Want to make a set of quiz buzzers for an event out of Staples Easy Buttons? Arduino.
- Want to make a light-up arm cannon from Metroid for your son? Arduino.
- Want to make your own heart rate monitor for cycling that logs to a memory card? Arduino.
- Want to make a robot that draws on the ground, or rides around in the snow? Arduino.
For someone who doesn’t know about electronics, or microcontrollers, this sounds cool and fun, and you’ll want to join this club. This is the type of stuff kids want to make — you can even trick them into learning some things along the way. These are the projects science fiction stories are made of, the things gadget sites blog about. What do all of these have in common? They’re ideas that usually wouldn’t actually happen, things we normally just dream about. But now these fantastic ideas are brought to life, and it’s very likely a non-engineer made them.
That’s a big deal because engineers tend to design platforms for other engineers, not for artists, weirdos, or kids who want to connect stuff up in a simple way to share an idea. The Arduino team is not made up of hardcore electrical engineers. They’re designers, teachers, artists, and (from what I can tell) techno-hippies (this is a compliment, I hope I didn’t offend them.) The Arduino is mostly based in Italy, and every year I read another article about how Italy is struggling to find “their own Google” when they already have it. It’s the Arduino — they just don’t realize it yet.
If you look at examples of Arduino projects you’ll see the makers were more interested with the what — not the how — of the electronics. The cranky people who enjoy being mad about Arduino’s success love to say that the Arduino doesn’t teach the underlying electronics, “Bah! this isn’t REAL electronics,” they say, “It’s too easy!” Yes, it is. If you want to make an LED blink or a motor move without using an Arduino, good luck if you’re an artist or designer. We’re talking days to get it right (if it works at all). Sure, it’s nice to pay your dues and impress others with your massive Art of Electronics book, but for everyone else out there, they just want an LED to blink for their Burning Man costume.
I think my favorite example of how parts of the old-school microcontroller community viewed the Arduino comes from AVR Freaks, the official community dedicated to the AVR processor (same one used in the Arduino). You would think they would love all this new attention, bringing AVR microcontrollers to the masses. But many in the AVR Freaks community do not like all these non-engineers with their weird art projects messing up their hierarchy. My favorite quote (and I want this on a T-shirt) is:
“Arduino: baby-talk programming for pothead” – ArnoldB, AVRfreaks.net
This mistaken attitude actually helped Arduino, because it pushed the Arduino fans to build their own community, and one that I would say is more inclusive and shies away from condescension.
The Arduino is simple, but not too simple. It’s built around the idea that students will be using these to “do” something: get sensor data in, have a bit of code, do something with that. Maybe they didn’t even write the code, they cut and pasted it to get started. It’s hot glue, not precision welding. No one is going to cut a hand off or burn down the studio experimenting. One of the Arduino team members teaches designers and artists — everyday, the platform is being built and improved for step-by-learning, building on lessons and sharing code — these designers and artists are using Macs and tinkering in Processing (Arduino’s older sibling).
OK, so it’s all warm and fuzzy, an artsy love fest, and that’s why it’s the DIY success story? No, there’s way more! Let’s get a little more specific…
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.
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.
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.
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!
The goal for this week is to prototype the driver circuit for the two stepper motors. Check out the Make It Last Build Series landing page for full info, prize details, and info about the first two builds in the series.
A pin of a microcontroller can source enough current to power an LED, but not much else. It is best to think of the voltage at the pin as logical high or logical low signals, not as voltages that can provide current to a circuit. For a load larger than an LED (i.e. 20 mA or so) we will need a driver circuit to provide power to the load. The Drawbot stepper motors will draw significantly more than 20mA each!
Depending on the application, the driver can be as simple as a transistor or a MOSFET. In this project we will need to drive two stepper motors, which can be done simply with eight transistors. A better solution for an inductive load (i.e., a motor) is an H-Bridge. Let’s review all of the parts needed this week:
- 4x 10k resistor (Digi-Key 10.0KASCT-ND)
- 4x 1k resistor 1/4 W (Digi-Key P1.0KBACT-ND)
- 2x H-Bridge IC SN754410 (Digi-Key 296-9911-5-ND)
- 1x MCP1702 regulator (Digi-key MCP1702-3302E/TO-ND)
- 4x switching transistor (Digi-key PN2222AD26ZCT-ND)
- 1x AC/DC Power Supply 5V 2.5A (Jameco 252736)
- 2x Stepper motors 400 steps/revolution (Jameco 1581231)
- 2x more breadboards and hookup wire
Before we get into the details of the driver circuit, let’s look at how a stepper motor works.
A stepper motor is a type of electric motor driven by a ring of electromagnets around a geared iron shaft. The electromagnets are alternately energized, pulling the next gear on the shaft into place. The order the magnet windings are energized to make the motor rotate continuously is shown in the illustration above.
Stepper motors come in two flavors: unipolar and bipolar. Bipolar motors have four wires, and unipolar motors have six wires (and can also be used as bipolar motors by ignoring two of them). The main considerations when selecting a motor are:
- the number steps per rotation, typically between 45 and 400 steps (note that this is usually expressed as “step angle” where 360/stepangle = number of steps).
- voltage required to energize the coils, which could be anywhere from 5V-24V
- the current drawn by the motor, which could be anywhere from 500mA to 1.5A
- the holding torque of the motor
The motor I selected for the Drawbot is a 400-step unipolar motor (which we will use as a bipolar motor) that draws 900 mA at 5V. This choice sacrifices current efficiency for very high resolution (number of steps) at an affordable price ($20).
For more about stepper motors, see Tom Igoe’s page, which also has sample code for Arduino and the Basic Stamp.
Follow the Drawbot build by signing up for the weekly newsletter at the Make It Last landing page.
From Home Gunsmith Forum user rhmc24:
Using chambers cut off 12 ga. scrap barrels and a new $10 bbl for an Italian auto shotgun, the only other gun part is a scrapped hammer from a 1857 Remington perc revolver. Loads like a SAA Colt but underlever rotates and cocks it. Blow-by is negligible, hardly noticeable with normal shirt sleeve.
Click through to the forum to see internal shots of the action and read more about how it’s put together. [via Hack a Day]
I have been interested in picking locks since I picked my first lock in science class one day during 7th grade. Last year, I purchased a number of lock picks from various manufacturers (SouthOrd, Rytan and Peterson) and found that, although good in their own right, I could not get the right “feel” from them. After seeing a number of posts on lp101 about making lock picks, I decided to start making my own.
Although my first pick was nothing phenomenal (dual falle hook), it was good enough to encourage me to make more and better my pick making skills. Fast forward to now, I have been making custom picks with custom, exotic wood handles.
If you like what you see, Doug is accepting commissions for custom picks. [Via @shoebox]
The second episode of Make: Live is online for your viewing pleasure! Matt and I had a great time hosting guests Limor Fried and Marc deVinck!
Subscribe to the MAKE Podcast in iTunes, download Make: Live episode 02 in its entirety (m4v), or watch clips on YouTube. Also check out the chat room transcript!
Limor “Ladyada” Fried – Soldering demo with the Game of Life Kit
Solder sorceress and Adafruit Industries founder Limor Fried joins us in-studio for a soldering demo featuring the Game of Life kit.
Marc deVinck – Electronic Merit Badge
Maker Shed product developer Marc deVinck developed the popular learn-to-solder badge you may have seen at Maker Faire, where you can learn to solder for $1 in the Maker Shed, then show off your new skill.
Last week when I saw Thingiverse user jmne’s laser-cut interlocking Settlers of Catan tiles, I noticed this impressive rendering of a set of 3D printable game pieces attached in a comment from user Sublime, and thought seriously about blogging it then, just for the cool factor. But my general policy on 3D models is that I don’t cover them until there’s at least one real physical prototype. In this case, however, I probably should have trusted my instincts, because it turns out, besides the cool factor, Sublime’s design is creating quite a buzz with the legal questions it raises. Michael Weinberg has written an informative analysis of the is-this-legal question over at Public Knowledge. Weinberg’s answer, briefly, is “probably,” but the process of getting there is worth following. [via Boing Boing]
The Monochron clock kit from the Maker Shed is a completely hackable, open source, clock kit that has a funky retro feel. It can be programmed to display several different clock “faces” or you can program you own. The kit comes complete with all electronics (soldering required), laser cut case, and power plug.
Hint, Hint – Follow the Maker Shed on Twitter, or Subscribe to our Deal of The Day RSS feed to keep up to date on the latest deal!
Build a Monochron Clock Kit