How the arduino won? This is how we can kill it.

[Phillip Torrone],  has written a piece over at Make entitled “Why the Arduino won, and why it’s here to stay“. While boasting that the Arduino “won” at roughly 100k units in the wild sounds decently impressive at first, lets just ponder for a moment how many bare AVR chips there are out there in home-made projects. Kind of makes 100k sound small doesn’t it.  However, if you look at their definition of the Arduino, targeting fresh and new people to microcontroller projects, that changes things a little bit. That number suddenly starts to seem a little more important if you re-word it as 100,000 new beginner hackers. Sure, they’re only tweeting toilet flushes and blinking lights, but they’re excited and they’ve tasted blood.

[Phil] goes on to talk to manufacturers on how to “beat” the Arduino. He lists features that would help push someone onto a new platform instead of the Arduino. This, is where I think we come in. We can kill the Arduino.

Not as a platform, but by removing it from the hands of people through education.  Lets embrace these new hackers. Lets pull them in with open arms and show them what they can do once they have learned from their Arduino and are ready harness the power of microcontrollers without limitations. We can show them just how simple of a circuit they could use to blink their LEDs. We could show them why and how we think another chip would be better suited to their project.

One reason attributed to the popularity of the Arduino is the hostile attitude from “old school” hackers. If someone shows up and excitedly says “look, I made an RGB mood lamp with an Arduino”, we shouldn’t scream in their faces how stupid they are for such a massive overkill. We shouldn’t ignore them either. That will only send them back to the Arduino forums with their tails between their legs to do yet, another copy/paste project. We should pat them on the back and say “Hey, great job! You know I’ll bet we could make a cheap circuit with a 555 that would pull that same effect off quite nicely and it would only cost $1. Here, check out this schematic.”

Embrace them, educate them, and the Arduino will no longer be their only tool.

142 thoughts on “How the arduino won? This is how we can kill it.

  1. When HaD feature a project with an Arduino, more often than not the word “Arduino” is used in the title of the article.

    When HaD feature a project with a different microcontroller, more often than not the name of the microcontroller is not used in the title of the article.

    So much for killing it.

    For the moment I’ve gone with the Picaxe – free software, great forum help, cheap and bloody easy to program, 2 resistors and a serial cable is all you need to hook them up to a PC to program, they all have a pile of built-in functions that don’t need extra include files to use, the 20m can run at 64mhz without needing an external crystal, the newest of the range (18m2) can run at 32mhz without plugging in a crystal and can do non-contact touch sensing amongst other things.
    I do my prototyping on breadboard (not an expensive kit board) and my final projects on stripboard, one day I might make or get my own circuitboards made but the breadboard-to-stripboard method is suiting my fine right now.

  2. ok so ‘fat nerd’ was a gritty depiction. but this comes after a bitter 3 months of dealing with 3 different sets of (said individuals) who boo-hooed the Arduino for a project, then festered on 90 days of budget cuz they said “it can be done simpler with 555’s” or “Let’s just go PIC with this”. Once I introduced the Arduino, no more time-wasting, and because of the community and other helpful guidelines, the project is successful – without them.

  3. For an off-and-on hobbyist, anything but an Arduino is overkill. Rather than have a pile of half-finished microcontroller projects, you have one microcontroller and a pile of half-finished breadboards. Or, to address the article directly, if you already have an Arduino and want to make a mood lamp, it’s certainly overkill to go out and buy a few 555 timers, various passives, and a power supply, and then try to figure out how to wire it all together.

  4. The complaints about Arduino always revolve around ‘cost’ and ‘overkill’.

    Cost: You can get an arduino RBBB for $10. For a one-off, the $8 you save building it from a 555 isn’t worth the extra development time. We’re all busy people here.

    Overkill: A 555 or PIC based solution isn’t inherently superior to an Arduino solution because they have fewer features. That’s ridiculous, why would you think that?

    If you’re building 1000 of something, the extra time spent value engineering to the lowest cost solution is worthwhile. If you want to make it as small as possible or minimize power usage Arduino isn’t a great choice. For the 90% of projects that don’t have these constraints, it’s the best available technology.

  5. Listening to this discussion is kind of interesting, and took awhile to figure out what is generating all this heat about a simple dev board.

    I’ve seen this sort of thing before. Remember when usenet was this cool, smallish community of technical people, and then the unwashed masses began to arrive – mostly sporting WebTV and aol addresses? And the backlash that generated?

    Almost all of the same modalities that you see here were also in evidence there. On one side you had people lamenting how lame all these people were, and on the other side people would say “let’s educate them and bring them into the fold and everything will be better for everybody”.

    Well, usenet, WebTV, and for all intents and purposes AOL don’t exist anymore, so let’s not get too worked up about arduino. It’s a step on a way to something better that will draw in more people than we even now realize.

    On to the future!

  6. @ftorama
    Yes is great business. open is not free and visibility is the best power for business.

    Do you think that all of this people (Banzi for first) and all of this company (Tinker, Telecom, Wired etc.) work for a buck? I’m not sure, sorry.

    And yes Banzi looks like Santa but…I’m saying that Arduino was a great business idea and I’m think that there is something more that openmind people and etichal reason.
    I dislike this kind of Arduino’s religion

  7. I’m one of the newbies you refer to. I want very much to get into this. I’m a programmer. I can solder. I know assembly language. Unfortunately, the only thing I know about electronics is that my dad made circuit boards for a living. I really need a mentor. Is there anyone in the Carrollton, Tx area that would volunteer their time and brain cells to keep me out of Adrino-land?

    Thanks

  8. The wrong thing with Arduino is the price/complexity balance of the projects. Most projects made with Arduino lying around the web are so simple that a low-end mcu like pic12 can do them easily. Pic12: no external crystal required, wide operation voltage range, easy programming… and the best part… CHEAP!!

  9. I have a software engineer background with an increasing interest to do EE. I did get an Arduino to get started, but soon started to feel that I am abstracting myself from the hardware: I wanted to really know what was going on and to be able to control the microcontroller. By using Arduino I felt that I was not getting there.

    So I got a cheap programmer and few attiny 2313s and started prototyping (timers, interrupts, pwm etc.). I use avr-gcc and I will probably be using assembler too once I have the time for it. I built my own small development board around 2313 and that has been quite sufficient for now.

    I also have been doing some 6502 assembler coding for Commodore 64 and intend to build all sorts of mad gadgets for it asap. C64 is the definite development system. ;)

    All this has also, IMO, made me a better programmer. Even though I do my work with high level languages and limitless resources, getting back to those constrained systems teaches one many new things about the operation of a computer.

  10. Just to chip in with my thoughts. I teach at an FE College in the UK and have recently introduced Arduino to our first year National Diploma students. After a few panic-filled lessons I get comments like “why didn’t we do this at school” and “I really enjoy this”. Some of these students have then gone off and ripped RC cars apart and added Arduino controllers. I then point these students to alternatives such as PICs.

    When it comes to criticising the cost of using an Arduino or the poor prototypes produced I find it is better to program the chip on the Arduino board then pop it out and put it in its own circuit by adding a timing crystal and a few capacitors.

    I use Macs out of choice and on this platform there is not a lot of choice when it comes to programming microcontrollers. For example I want to program PICs but Microchip don’t produce an IDE for my platform so I have to resort to the command-line!

    Another huge barrier is the lack of any books to teach PIC C from the ground up without going into to a huge amount of detail on how to use the MPLAB software. All I want to do is learn the basics so I can program the PIC on my Mac! I have spent days and days searching the College and local Uni libraries plus the Internet.

    There is no way you can get people to start using alternative MCUs unless you:
    a) make it accessible to ALL users on ALL platforms
    b) make the first steps as painless as possible

    THAT is why the Arduino platform is so popular with ‘newbies’.

  11. For those who want to move past Arduino, I have written a runtime library for AVRs which was designed to address many of the shortcomings of the Arduino runtime.

    It includes:
    * Digital I/O
    * Timers
    * Serial (both busy-waiting and asynchronous)
    * External Interrupts
    * Servo control
    * Analogue to digital
    * Hardware PWM
    * Gamma correction – calculate on the fly, or lookup tables (recommended)
    * Fast synchronous serial shifter
    * Software H Bridge for driving naked transistors (with PWM support)
    * Realtime Clock & event triggering
    * Debouncing (detect button presses, as well as held buttons)
    * Software PWM Matrix (for passive LED matrices)
    * HT1632 based LED matrix displays such as the Sure Electronics DE-DP105 (search for 0832 led matrix on Ebay)
    * HD44780 & compatible LCD character displays

    http://www.makehackvoid.com/mhvlib

  12. agreed, i get chewed on by many elites sitting in IRC and it just makes me feel shitty, not encouraging especially when i’m there putting myself on the line looking for advice / help

  13. @TiredJuan – Thank you. That is *exactly* my problem. I’m interested, and I can do some really cool things with an Arduino, and I had the opportunity to grow into using SPI and serial-to-parallel chips…all of which is fantastic…but when it comes to understanding *why* this part needs to be where it is in the schematic, I am clueless, confused, overwhelmed.

    Mostly overwhelmed.

    I’ve designed circuit schematics, but not from scratch. I mostly Google for hours until I find something that suits my purpose, essentially copy-pasta it, and make a few modifications so it’s more specific to my application. I can do cool things with electronics and microcontrollers, but I don’t know *why* I do the things I do. Monkey see, monkey do. That’s all it really comes down to with me.

    I don’t have time or money to go to school for this stuff, and I don’t know anybody in real life who knows how to do this stuff and can teach it to me or be a mentor.

  14. Oh, and the hostile attitude I get from people when I ask for help — even in the Arduino forums(!) — is very off-putting. I want to learn. I can’t learn if you aren’t willing to teach. Don’t be so elite. You know why people stick to their Arduinos and never grow out of them? Because they’re scared of you. You’re mean to them, they stop trying to grow, and then you laugh at them for not growing.

  15. @marktyers – Before I learned of Arduino’s existence, I tried learning PIC. It was pretty rough, because I also use a mac.

    I bought a USB programmer (USB PICKit2), a couple of PIC chips, and promptly got nowhere. Not because of a lack of mac software, though — they do (or used to) actually make that for mac. It is possible to program PICs on mac from an officially-supported IDE.

    My point is, I feel your pain. Also, I’m pretty sure there is mac software for PIC programming.

    Here, I just found this: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en023805 but it’s “unsupported.” I’m almost positive I have a CD or something with a full OS X PIC IDE, but I haven’t used that stuff in a long time.
    I’m sure you’ve probably already seen and tried this: http://www.paintyourdragon.com/?p=45
    or this?:

    http://www.1710.co.uk/cms/pics-on-mac

    …but I *swear* on my old mac (10.4 original intel macbook) I had hitech picc ide(?) and compiler installed, and either a mac version of mplab, or some other pic ide that didn’t require compiling from source and installing hundreds of dependencies, nor did it rely on having X installed.

    But it was so long ago I don’t remember. Sorry I can’t be more helpful.

    I apologise profusely for the triple-post. I should read all the comments before posting…but this thread was just SOO long. :(

  16. I would like to share my experience in this matter, as it is pertinent and applicable.

    I don’t represent the majority of the people who are said to use the Arduino. I am no an artist or electronics noob. I am a Broadcast Engineer, which amounts to a higher level electronics technician. I know how things work, and why, down to the component level, and to the atomic level on some of them (transistors, etc). I can and have built circuits on proto-board (perfboard/stripboard/whatever), from the idea, through the schematic, and up, successfully.

    I recently came up with a project which runs two fans equipped with RGB LEDs to make them look like jet turbines, starting at blue and “heating up” to red and orange, glowing and flickering. I also want to add some sound effects and buttons into the mix. I know how I could achieve the LED portion using a string of 555s, some decade counters, and some other analog components, but in order to do that I would have to create a very complicated schematic, breadboard it, then go through the rest of the process to get it built. In the end, the board itself would be far too big to fit into the enclosure I am planning to use. So I come across the idea to use a uC. I hate jumping on the bandwagon, so I decide right away that I want to go straight to the bare uC, but I have no clue which one to choose. I always read comments about “overkill” and “coulda/shoulda”, so I pose the question at the bottom of the first uC tutorial here on HaD about how to choose the right one. No one responds. In hind-sight it should have gone to the forum, but there are more trolls on the forum than those in the comments. Besides, I figured someone would have subscribed to the comments and been able to answer my question; it is a relevant question after all.

    So I disregard the overkill, since I plan on adding features later anyway, and start looking around. I come across the AVR starter packs from EMS and buy one of those. Now I have four Atmega 328p, and four Atinny2313. And the starter boards. And some components to get started. And the USBtiny programmer. I also have a huge parts bin. I put the programmer together (from the kit), and start on the first tutorial here on HaD, from Mike. I get it to work. I feel like a frickin’ champ! But I don’t really know what I just did. I just soldered lots of stuff, which I already knew how to do, and copied some code, which teaches me nothing. Reading through the tutorial, part III, over and over again, I see that maybe if I change the number of cycles on which the interrupt is triggered, I can change the frequency of the blinking. Nope. Didn’t work. Why not? Mike says he got his information from the datasheet. I go to the Atmel website and download everything I can find which I think may help. How to use timers. How to do PWM. The 500+ page datasheet, and I start reading. I read through the “How to use timers” PDF and it is basically telling me exactly what Mike said. PWM doesn’t apply to this situation because I just want to blink it, not dim it. That’s a whole mess of code in the wrong direction. I alter the code a few times, erase the chip, load my new code and still it blinks at 1Hz. WTF? I have been working on this SINGLE PIECE of PROGRAMMING for 4 days. There is no way it should be so difficult to change the blink frequency of an LED.

    Then I hear about all the success people have been having with the Arduino; blinking LEDs in minutes out of the box. Kids in high school doing PWM and touch sensors and temp sensors without knowing how to code in C? Well that sounds exactly like what I need. I don’t know how to program at all. I started learning PERL before I tried uCs, but it was a step in the wrong direction, because I am a hardware guy. Maybe if I buy an Arduino, which I have read uses the Atmega 328p anyway, I can sort of adapt the code to my project outside of the pre-fab board. But I doubt it works that way. And even if it does, I am now out of the $ that it cost me to buy the AVR pack and the USBtiny, because neither of them are needed for the Arduino. So I just wasted my money on a pack of AVRs that I still can’t use.

    People like me read comments like “GIMF”, “RTFM”, “Just read the datasheet” and so many other things and there I go. I read the info; it is basically a foreign language without the right foundation. And even if I knew how to read it properly, and could somehow decipher how to piece the example code in the PDF together, I still wouldn’t be able to “debug” (if that’s the word for troubleshooting code) the C, because I have no clue what it means. So now I have to learn C first, then learn how to read the datasheet, then learn how to piece the two together.

    “There are examples and forums” you say? I am a member of AVR Freaks. I have been reading through the articles there, but as a senior member of many forums, I know that you get the most flaming for asking the same question as the guy before you. I’d rather avoid that. So I am stuck wading through outdated posts which sort-of pertain to what I want to do. By the time I get to the point where I have enough knowledge to actually program the uC, I have completely lost interest in the project. So again, it sounds like the Arduino is perfect for this. And you would probably say that using the Arduino is going to take the same physical space as building the analog circuit, and you may be right, but at least I would have expandability.

    I’m pretty much at a loss for what to do from here. I am only a few steps away from giving up the fight with the learning curve and abandoning the uC initiative altogether, and just sticking to what I already know; hardware.

    Those of you on the pedestals, what would you recommend I do now?

    1. Hi,
      I know a mate who just like you comes from a traditional background in electronics. He got a PicoMood DIY kit from an Australian company PicoKit and used their flowchart software to program in minutes, and now he’s got it for all sorts of project uses.

  17. I’m more than happy to help you with the code. If you’re local, maybe you can help me learn more about that hardware part? Even if we can’t trade, I’ll help you. send me the code and what timing you want and I’ll send you something I hope can help you.

    Denise

  18. Ease of use has always trumped efficiency. Those who promote the use of microcontroller chips over platforms like Arduino forgot that many years ago hackers bragged about building their digital circuits one flip flop and one transistor at a time. I remember back in college when microcomputers were introduced for the first time into the Computer Science major. The upperclassmen mocked the PC and warned of a dire future of unemployment for those of us who cut their teeth on microcomputers. They insisted mainframes were for real computer scientists. The more things change.

  19. Good article with great responses. I’m a newbie that stumbled upon Instructables.com while searching for something about model railroading, DCC control, I think it was. “Pseudo-DCC using…Arduino? What’s that”?? “You can do WHAT with it?!?” “Electronics. Hmmm, I remember going to RadioShack with my dad when I was a kid & seeing that stuff. This might be interesting!!” I now have in my workshop/lab (was my train room!), just since the middle of January, an Arduino Mega2560, many sensors and components, including RFID hardware, 16×2 LCD, 128×64 GLCD, pots, resistors, etc. I’ve assembled a light-to-sound KIT (first project to see IF I even found it interesting). I’ve disassembled a shelf stereo & printers for their treasures. I’ve read pages & pages of info that has lead me to see what lies ahead beyond Arduino. I want to LEARN electronics, & it STARTED with Arduino. I’m having problems with “sketches”/programming, but I’m getting there. Theremins with & without Arduino. LED circuits.

    (BTW, I am currently looking for instructions for a RGB LED mood-light without Arduino for my daughter’s bedroom. Any help??)

    All-in-all, I think Arduino is a great starting point for ME, since I really started with absolutely NO experience with MCU’s or programming. I am looking forward to this journey through the electronic world of DIY & can’t wait to have inexpensive, stand-lone (Arduino & non-Arduino based) completed projects.

  20. You totally miss the point of the Auduino and it’s cousins. The point is not that it’s overkill for what work it ends up doing (it’s not btw) , the point is that now a software only guy can easily do the same work that it took a proprietary hardware/firmware guy to do just a short time ago – what died is the number of projects going to specialty firmware engineers.

    The cost is low enough especially in low volume projects to make it a production candidate. Long live the prototype especially as it moves forward into production (unmodified).

  21. Spot on!!
    Don’t try to make education one-size fits all – Instead we should teach how to choose a product that suits the intended function.
    Check out PicoKit – See if a 50 cent Microchip is enough. They’ve got awesome flowchart software and great education. The PicoDice is my favorite!
    Do shields actually work together – and why pay so much?
    It seems like Arduino was designed with Sales & Distribution companies in mind.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s