Arduino: The Documentary



The newest Arduino - Arduino Uno.

In the past 10 years or so, the world of embedded electronics has grown at an exponential rate. We've been fortunate to ride this wave of ingenuity and find ourselves deeply immersed in a wonderful world of electronics. Another company that has been deeply involved in the DIY-electronics movement is Italy-based Arduino.

Arduino has become the favorite development platform of hundreds of thousands (millions?) of tinkerers, engineers, students, and garage-workshop hobbyists. We admit - we like it, too. Arduino gives us a great, easy platform to build electronics projects. Plus, it has exposed many, many people to embedded electronics. So check out the video above - Arduino the Documentary.


Comments 68 comments

  • Alright then. Here’s my 2 cents …
    My brother had been on at me for years to get into PICs saying how much I would enjoy this stuff. But to me it seemed so daunting, like standing next to the black monolith from 2001. One day I decided to give the Arduino a try and picked one up from the local hole-in-the-wall electronics shop. I wasn’t really sure how it all worked, I just knew that all I needed was a USB cord, which I already had. So why not? Before long I was spending every available minute tinkering with it. I already knew a little about electronics but hadn’t touched programming since I fudged my way through my Comp Sci diploma (wasn’t really digging it). In the year-and-a-half since I got the duemilanove, I’ve branched out into standalone projects, first by porting the Arduino hex files then by programming under AVR Studio. I’ve done a lot of work with ATTINYs now and pretty much know most of what’s in the full data sheets (or at least where to find it). I’m amazed that the projects I’ve chosen to work on have each led to me exploring the devices on a deeper or a more subtle level. I don’t think I could have done better if I was planning a course for myself with the benefit of hindsight.
    In a nutshell, the Arduino has opened a door into a fascinating and satisfying part of my life. I mean, my idea of fun now includes thinking about how to improve my algorithms while I’m lying in bed at night! It sounds almost mad, but I can’t imagine giving it up. I suppose I have got the bug pretty bad. I’m an addict, and it feels great!
    So to those who say if you start with the Arduino you’ll be stuck with the Arduino, my experience strongly contradicts that. I think it depends what kind of projects you take on. If it’s anything remotely performance-critical, you’re going to want to get down to ports and fuses, and you will have to look closely at where your CPU cycles are going. Personally I love the challenge of working with such ‘limited’ devices. And if you want to make more than one of something, it would be silly to put an Arduino in each one.
    To those who say it hinders an appreciation of ‘real’ electronics, I can only say it’s re-energized my own efforts to improve my skills in this area. Like when I got a digital camera and, thanks to the convenience factor, actually started taking photographs again. Sure, they aren’t as good as 6x6 transparencies on Fuji Velvia, but …
    It is arguably true that direct connections from microcontroller projects to full-on analog circuit design, with transistors and zeners all carefully chosen for their specific properties, are few and far between. BUT once a person discovers this particular facet of electronics it is surely more likely that they will discover more as their interests expand, perhaps, beyond microcontrollers.
    My Arduino isn’t gathering dust either. I reach for it when all my breadboards are full, or if I want to do a quick proof-of-concept, or if I’m feeling lazy, or just for old time’s sake!
    The only thing I would change about the hardware would be to standardize the gap between headers to a multiple of 0.1" (or eliminate it altogether). And yes, my v21 software is much slower to load than previous versions of the IDE. But these are surely trifles. This thing is great at what it does.

  • I won’t eat food that I haven’t personally planted, watered, harvested, reared and slaughtered myself - because anything else is just cheating.
    Also, I won’t allow anyone to give me medicines I haven’t personally researched, synthesized, and tested on a score of beagles myself. Same reason.
    We shouldn’t all be experts in everything: it’s not efficient. We’re better off with specialists doing the hard work in each area. As a mech eng, I price my time higher than the extra money I spend on an Arduino, the electrical power it wastes, and slower execution than some other chip. Increasing the efficiency of the doodad I’m building is of tiny benefit and takes weeks compared to what, spending another 45 minutes at work actually being productive for other people and getting paid more than enough to grab an Arduino that just works. Being able to grab the code and circuits I need off the shelf (the community-stocked shelf) and bodge it up to what I want is perfect.

  • whoa! Soo much nerd snobbery in these comments. I love Arduino because I can write easy to understand code and control hardware. Are these haters upset at the guy who invented the mouse because now you can launch a program without even typing at a command prompt? It’s so unfair(in a cry baby voice).
    To you hardcore guys who want to write in binary and make your own transistors by melting sand, more power to you. I just want to have fun making electronics for my own enjoyment and the other novices who may get a kick out of it.
    I apologize for not being an electrical engineer. The shame is almost too much…

  • Still don’t understood why some see such a negative in “easy to use and hides lots of messy time-consuming details.” In many cases, that’s what you want. It’s just another option and I like options. I’ve done embedded development on many different systems for about 20 years, it is part of my day job. Still takes me time to start up with a new system, so I really like the Arduino when I just want to get something done. Plus the price, I would love to see a FPGA dev system anywhere near as cheap! (although, I see knjn.com has some under $100)

  • Great video, I’ve used Arduino boards in numerous projects. They’re quick to get going and cheap to use (esp. if you just burn the bootloader onto blank chips from SF/CPC/RS/Farnell).
    I wish I could say the same about the ARM7 boards I’ve also used. Sure, they’re more powerful and you can do more with them once you’ve figured out all their intricacies, but unless you ‘need’ that, why bother?
    I won’t enter into the PIC v Atmel holy war, but I do take issue with people banging on about FPGA’s. For the majority of tasks, they would be a ‘sledgehammer to crack a nut’ solution, regardless of cost or development environment complexity. I fail to see why using something more difficult would make a solution better.
    I’m a firm believer in choosing the right tool for the job. If a family friend wanted some advice on a computer for reading email and playing solitaire, I’m hardly going to recommend they buy a full on gaming rig when a £250 netbook would suffice.
    I love the fact we now see people with no background in electronics building robots or autonomous vehicles, who 5 years ago wouldn’t have even thought about doing anything with a micro controller. Anyone thinking that you should have an EE/CS degree before you even breathe on an IC is an idiot.

  • scienceguy:

    As a high school teacher, I’m very excited about bringing these devices into the classroom at some point. Those who say that people will never learn the “basics” of electronics if the microcontroller learning curve isn’t sufficiently hard are missing the benefits rapid prototyping has to offer. In the classroom, I actually have MORE time to devote to electrical and electronic theory if I can count on the Arduino to “just work”. The problem I’ve had in the past working with students in this area is that we get so bogged down in deglitching the “simple” stuff that we never have time for meaningful projects. The best way to get a young person to dig into a topic is to make it have meaning to them personally. If a young person can successfully complete a meaningful project of their own design, their interest in electronics will stick with them. Once they run into the limitations of the Arduino, they will look to more complex solutions.
    I agree with this completely. I didn’t start on a simple level like most people that go with this board. My experience started in college, with various circuit theory prereqs. We started off with an Atmega 32 writing in assembly for the first 80% of the class and then moved to C for the last 20%. While this might have been the more frustrating route to learn embedded electronics it led to a much deeper understanding of what was actually going on.
    That being said if I was doing it as a hobby, assembly would have probably scared me off. C is hard enough for a beginner. If the arduino has enough power to do whatever the user wants, why bother learning how to work with a more difficult microcontroller? If the project out grows the chip the designer will then move to something more capable at that point.

    • Couldn’t agree more! My entry point into electronics and microcontrollers was harder and less intuitive than an arduino. People before me had it even harder still. Doesn’t make my experience any less valid; just different.
      I missed the BBS era by a few years, but I don’t feel my experience with the internet is diminished!

  • As someone who started with 68HC11 assembly in college and wanted to go further but cost and learning curve held me back, I’m awful glad that Arduino came along. It’s a cheap, standardized, quality system that is open source software and hardware to boot. One of the best things about Arduino is that you can treat it as any other AVR development board if you outgrow the Arduino development environment. You’re not going to find AVR development boards any cheaper than what the Arduino’s clones sell for.
    As a high school teacher, I’m very excited about bringing these devices into the classroom at some point. Those who say that people will never learn the “basics” of electronics if the microcontroller learning curve isn’t sufficiently hard are missing the benefits rapid prototyping has to offer. In the classroom, I actually have MORE time to devote to electrical and electronic theory if I can count on the Arduino to “just work”. The problem I’ve had in the past working with students in this area is that we get so bogged down in deglitching the “simple” stuff that we never have time for meaningful projects. The best way to get a young person to dig into a topic is to make it have meaning to them personally. If a young person can successfully complete a meaningful project of their own design, their interest in electronics will stick with them. Once they run into the limitations of the Arduino, they will look to more complex solutions.

  • It’s like the Mac of the “stamp” world. The basic stamp was doing everything this thing can do years ago
    But now this is the “hot” product. All the hipster electronics geeks have taken to it for its ease of use and instant gratification and lack of any real skill to use and now they are all hotshot embedded programmers in their own minds. Out goes the challenge of wading through a datasheet to figure out port or register settings like us “uncool” PIC (or PC)users (for that matter). Why figure out why it works when “it just does”. I have a cool idea, and it needs to be done NOW before I figure out how to “really make it work” because thats not important as long as it just does and even better if I can just steal someone elses code to do it. Its the further dumbing down of the masses. People will gripe about my post and say I’m a jerk and that this “draws people into electronics” and I’m too critical, blah blah blah. No math, No science or boring fundamentals. Justin Long uses the dweeno' and he’s young, pretty and cool, so you should use the dweeno too. Electronics is still a dying hobby… Kids can hook up a couple of wires, type some dumbed down pseudo-code and still not know a single fundamental like ohms law. But why should they right?

    • Just .. WOW ..
      Really dude.
      Just think about it this way. YOU are using a computer connected to the internet. I seriously doubt you know everything about how it works.
      Keyboard and its scan codes. OS and its input buffers. Java and how it makes the pretty video box. BGP and how it routes your packets. Fiber optics and its very fast blinky things.
      Should we require people to learn about wave division multiplexing to use a fiber optic connection?
      If they want to learn ohms law , this is a great way for them to learn. If they dont , they can still make an led blink.
      But seriously man .. WOW. I really hope you were just trolling.

    • To be fair, i am an electronics engineering student in my last year of uni. I use my arduino for my home projects and school projects. It does everything so fast (development wise). I don’t really have free time on my hands but when i do i want to optimize it for my project at hand. But i do agree with you. Arduino allows people with little to no knowledge to do seemingly ‘complected’ tasks, giving them the feeling of achievement. Is that a bad thing though? After all they are mostly just hobbyist, who do this for their enjoyment.

  • Good video! I’d like to see a documentary about the Netduino

  • One more thing. Is it just me, or the majority of Arduino users would not go for something more difficult? I have coworkers who you could bet they’d stick to Arduino for pretty much any application they could think of (the only thing I didn’t hear from them was the building of 100 MSPS scope :grin:)
    It would be nice if Sparkfun would promote better alternatives to this limiting board.

    • You have to remember that not everyone is the same as yourself.
      For example, I am a software engineer, a pretty good one I might add, but when it came to my hobby I wanted to solve the problem in front of me, not have to learn every aspect of microcontrollers.
      I have since done work with at ATTiny13, with a mix of ASM and C which worked well.
      The ardunio is what let me dip my toes in, and I tell you now, I still pull out my teensy board and code against the arduino libraries for speed and convenience.
      Not speed of code, but speed of development.
      My free time is limited and abstraction layers are what let us chat across the world via graphical web browsers.
      Sure I want to expand into FPGAs, but I have experience with standard imperative languages.
      If I had to use FPGAs & learn a new programming paradigm to play with my 8x8 LED matrix, I most likely would never have built it.
      People have different needs, just because you might not recognise or understand them, don’t assume you know what others need.

    • Personally I love the Arduino. As a long time dabbler in electronics I started with PICs programming them in ASM. The thing I like about the Arduino is that I can use “normal” maths without having to find code that will multiply the numbers then figure out now to make this 4 byte number display on my LCD.
      I think of it as programming for a PC, you don’t need to understand how the underlying hardware works, just how to access its API. Does it lead to bloated code and lazy writing? Maybe. Can it reduce development time, yes.
      Each to his own. I have just started looking at an mBed for my next project as I need something with a little more processing grunt then an Arduino can provide. mBed has its issues (online only complier) but it is much like the Arduino in that it provides a standard base with a community to help when you get stuck. Perfect for me :)

    • Fair enough. I started in embedded electronics with a handful of ATTiny chips and learned all of the good stuff about registers and clocks and what-have-you, on the internet. I successfully built a couple of projects based on AVR chips thinking “Jeez, $30 for an Arduino when I can pick up a chip for $3 and program it in practically the same language?” When I fell under a time crunch this holiday season to build a project for a friend of mine I finally conceded and snagged a ‘duino. It’s awesome, I mean, you know, for most things.
      I gotta tell you… I think that may be the way to learn it though. Teach AVR-GCC, teach basic electronics with AVR Chips, then when they end up with a breadboard jammed with “stuff” (power regulation, programming, caps and pull-ups) tell 'em, “Hey, Someone already did all that,” and hand them an Arduino board. That way they’ll truly understand what the development environment is really doing for them and they’ll appreciate the power of the tool in the context of “Well this is handy. It’s a pretty-fast chip on a cool blue board that’s pretty easy to develop.” As opposed to, “It’s magic, and it will solve all of my problems,” lol

    • While I applaud the fact that somebody who has little or no experience with hardware and can write some basic software can now write micro-controller applications, I still think that the Arduino has not really helped people learn electronics, even though it has exposed more people to them.
      It used to be, and still is the case with approximately 90-95% of embedded work, that the programmer must have an intimate understanding of the hardware and how it functions, in order to make truly functional and stable software for a micro-controller.
      The thing the Arduino does is abstract and remove the need for a most of the hardware level understanding, helping to make the process easier for one who does not understand it. This is good for beginners, but has an unfortunate side effect of creating the illusion of competency, and sometimes masking the lack of skills and deeper understanding that are really needed to do embedded design.
      Sadly, most everybody who uses the Arduino will never move beyond it, and will limit themselves in what they can really do with a micro-controller and electronics because they simply won’t dive a little deeper into things.
      Then, Sadly, they will all promote the Arduino as the only end-all fix-all of the embedded world, and the real art of actually writing micro-controller software will fade into obscurity, and the movement will forget where it came from!

    • Why shouldn’t they? If it works, why not use it? If it won’t, what’s the harm in trying and failing?

    • I personally dislike Arduino. Shields are restrictive. They also allow users to pretend that they are learning when they are not. Many Arduino users are fooling themselves. They’re holding themselves back.

      It seems kind of unfair that someone can just jump from C to Arduino without any knowledge of what they are actually working with. Many of them are only shooting themselves in the feet. They won’t learn.

      • “It seems kind of unfair that someone can just jump from C to Arduino without any knowledge of what they are actually working with."
        The same could be said for any abstraction layer.
        I think it is unfair that someone can just buy a small plastic chip for a few dollars without assembling every transistor by hand.
        They have no knowledge of how their chips actually work.
        Or how about how a compiler works, an assembler, a linker I can go on.
        There is no such thing as fair, you either solve your problem or you don’t.
        The human race improves when we can do complex things without having to know every layer of functionality.
        If we all had to be experts at every layer, we would never have any complex technology.
        You would need to know the physics of transistors all the way up to how a compiler builds an abstract syntax tree before you were able to login to facebook (don’t forget TCP/IP and all the layers that make up the stack).
        Not everyone has the same aspirations as you, not everyone gets the same joy out of knowing the entire system, they might instead enjoy solving a particular problem in their life.
        What is wrong with someone deciding to trade off absolute knowledge and control so they can instead focus on the problem they are trying to solve?

        • Wow, this is deja vu for me. As a professional software developer for 30+ years, this sounds like some things we have said about TRS-80, Commodore 64, Visual Basic and so on. Anyone can program and just by getting it to work, looks competent and can even get jobs and compete with those of us that know application development, maintainability, testing and so on. It’s nice to see the same things going on in the hardware side now. When I started programming, computers cost many thousands of dollars. Thanks to the “hobbyist” market, the cost of having your own computer came down to where now I have several. (The Commodore 64 is in a box somewhere…).
          I suspect that Arduino and others like it will help usher in even more changes in “physical computing” like the systems I mentioned earlier lead to changes in “programming”.

          • Compared to one of my first jobs programming 8080 assembler and burning the code into 256 byte EPROMS the Arduino is dream. I will gladly pay a penalty in execution speed to see results so quickly. Besides who wants to use paper tape these days?

        • You have a point.

      • I’m happy that electronics is becoming less of an exclusive club!

      • Nike:
        “It seems kind of unfair that someone can just jump from C to Arduino without any knowledge of what they are actually working with."
        Wow, I feel the same way. Went to school in electronics and spent over a decade tinkering to get to where I am and do feel like using an arduino is cheating.
        However, I do realize the power of a platform and community support. I do not hesitate to recommend arduino to beginners.

        • I don’t feel like it’s cheating. Arduino user’s will NEVER make anything substantial or efficient.

  • I’m loving the Arduino as its simple to startup. I managed to create a simple MIDI Sequencer in just a few days. http://arduino.wusik.com

  • I’ve read this same thread on aviation, car, and guitar online forums. Lets face it; when you are starting out you have different needs than when you have experience and different needs yet when you are an expert.
    Theres another aspect to this as well; your personality. Some people want to understand things from the ground up before they do anything and some just want to get right into the activity at hand and may never care to understand about the details.
    So which is “better”? If you have to ask that you’ve missed the point.

  • Wow. A lot of bickering. But a grate set of post. I think of the these dev boards as training wheels. It pretty daunting to ride the first time without them. But those few who jump foward and start building there own boards & designing there own circuitry will be hooked.
    And its a plus having new and fresh blood driving this as a hobby and not just a job.

  • any takers on building the arduino computer?

  • Wow, this is deja vu for me. As a professional software developer for 30+ years, this sounds like some things we have said about TRS-80…
    Funny you should bring up the TRS-80. I cut my programming teeth on the TRS-80 as a little kid, and now I’m a full fledged roboticist writing assembly code for PICs (No Arduinos for me!) Having BASIC do the nitty gritty for me wasn’t a hindrance but a catalysis. Those that truly need to learn the harder stuff will when it’s appropriate.
    I’ve never used an Arduino since I was introduced to PICs first, but I’ve recommended them to several people and they’ve all appreciated the suggestion.

  • Excuse me for not being an electrical engineer. I love my arduino. If I were a professional I’m sure there are better solutions for more advanced projects. Alas, I am a tinkerer and prefer my hobbies to be fun.
    I like the arduino because I can achieve results using my existing knowledge of C and C like languages. When I use my arduino its not because I want to learn low level programming, its because I want to achieve a certain result. Arduino allows me to do that.
    If you don’t like it don’t use it. I know that I would not be very involved in DIY electronics without arduino. Maybe I’ll move up to something more powerful, maybe not. It is a HOBBY after all and it serves me well.

  • Yeah i am not a fan of only one (1) 5vdc line available for breakout.

  • There are all sorts of microcontrollers out there along with a variety of development environments. Some, like the Arduino, are very very easy to use. Others are harder or less well known. Because of its open-source community, the Arduino has spread widely and has a very large support community with all kinds of code libraries and examples. As has been true many times in this industry, wide-spread support tends to trump elegance or raw efficiency.
    My own preference for most of what I do for my own hobby work is Parallax’s Propeller which hasn’t been mentioned here yet. There’s a 3rd party board available for it that has the same form-factor and socket alignment and spacing as the Arduino and accepts most Arduino shields. There’s another board that has both an ATMega and Propeller, runs Arduino code on the ATMega, but has a non-Arduino form-factor and connector layout.

    • I also favor the Propeller for my projects because the forums provide the resources needed to really dig into it without things being a total bear. The project I am working on now is making great strides because of the help from the forums. It was much easier for me to learn the object based programming in SPIN than it was to learn the Arduino (which is collecting dust now on my workbench).
      As for the 3rd party board you mentioned, it’s the Propeller ASC at http://www.1mgh.com It works with Arduino shields and is also fully 0.1" grid compatible.

    • I also favor the Propeller for my projects because the forums provide the resources needed to really dig into it without things being a total bear. The project I am working on now is making great strides because of the help from the forums. It was much easier for me to learn the object based programming in SPIN than it was to learn the Arduino (which is collecting dust now on my workbench).
      As for the 3rd party board you mentioned, it’s the Propeller ASC at http://www.1mgh.com It works with Arduino shields and is also fully 0.1" grid compatible.

  • I’m new to a lot of this electronics stuff, but an arduino is a usb programmer, regulated power, and an atmel chip all built into one board, yeah? I understand how it could be described as a stupid expensive waste of money, but I don’t understand how it’s “cheating”…
    For me it was a pretty easy and organic transition from arduino projects to programmer and $3 chip projects (and the occasional just-a-555 project). I don’t think I would have gotten started without the all-in-one-package simplicity of the arduino.

    • Well, I guess one could think it’s “cheating” in that people that start with the Arduino don’t really know about registers, interrupts, or anything else that someone that started from the electronics/computer side would know. They’re using it as an interface instead of knowing how it works. You can see that in projects that clearly don’t need a microcontroller. There’s nothing wrong with learning programming first and using the Arduino to interface with hardware (I encouraged some friends to sign up for Free Day so I can teach them some electronics), but it’s an incomplete view of microcontrollers and hardware hacking. Is your hobby more CS or ECE? But a good CS student (or hobbyist) should still have the basics of the hardware and the ECE student/hobbyist should know what will be easy to code for and wouldn’t be.

  • semi-pro:

    It would be nice if Sparkfun would promote better alternatives to this limiting board.
    Can you suggest alternatives to Arduino for users of Mac OS X?
    Arduino development tools work on the Mac without much hassle, and the developer documentation is openly available. I liked the fact that I could peruse the development kit documentation before investing time and $$$.
    I’m grateful that Sparkfun supports the Arduino platform. I’m grateful that Arduino works with the Mac. I welcome uC alternatives that don’t require Windows and a serial port.

  • motopic:
    Seriously, Motopic, FPGA’s and low-end MCU’s are just not the same thing.
    I can show you stuff you could NEVER do on any MCU in realtime. But you can on an FPGA.
    While at the same time, I could show you stuff that’s just not worth doing on an FPGA because the need for speed is not there or it’s a hassle.
    MCU’s and FPGA’s have their niches… otherwise they wouldn’t both exist and have flourishing markets.
    Also, to program FPGA’s does require another language… unless you’ve never learned to use MCU’s before, then you have to learn another language. And they do have FPGA compilers that take C (although I’ve only authored FPGA’s in VHDL & Verilog)
    Xilinx ISEwebpack - Free. (and a good HDL Compiler)
    OpenCores.Org - Free (or darn close)
    UARTs, I2C, SPI all available from somewhere - Free.
    Spartan3E’s can be had for a little under $10ea in low qty.
    Microchip: MPLAB - FREE.
    MPLAB also includes lite compilers from hi-tech and CCS for FREE. Not to mention the student editions of C18-C32 (free).

  • semi-pro:

    One more thing. Is it just me, or the majority of Arduino users would not go for something more difficult? I have coworkers who you could bet they’d stick to Arduino for pretty much any application they could think of (the only thing I didn’t hear from them was the building of 100 MSPS scope :grin:)
    It would be nice if Sparkfun would promote better alternatives to this limiting board.
    You’ve the point!…
    we’ve to remember… Arduino is just the first step, the introduction for the emmbeded world. If you already domain this tool… just, make the next step.
    in my case, sometimes i make the project in arduino in first place, make it work… and… after that, i make the optimization and new version in other tool of more complexity.
    best regards

    • Arduino needs to move ahead. I like Atmel’s parts but there are way better bang for the buck microcontrollers these days - Arm Cortex family for example. Leaflabs is doing it - check out their Maple board.
      It won’t be long till you can run a full blown linux distro on a single device - you can run uClinux on them today. That will enable some pretty fantastic embedded, networked devices. We’ll need something a lot more capable than Arduino in its current form to enable novices to use devices like that.
      Great video BTW !

  • My knowledge of electronics and programming has grown tremendously since I started playing around with Arduinos a couple of years ago. I think the real value for me has been that it has allowed me to solve specific problems quickly without getting too bogged down in the details of exactly how those solutions work. This kept the discouragement level down and the satisfaction level up. As I’ve done more and more, I’ve found that digging into the details became increasingly necessary and so my knowledge has grown. Now I’m designing boards with AVRs independent of arduino. To be fair, I admit that all the AVRs I’ve used are in the Mega8 series (so far).

    • I wish more people would take this approach and delve deeper into things! The Arduino is great when used for what it was meant to be, a Basic, simple solution for rapid application development and instant gratification, not a fix-all, end all like it is touted to be by so many!
      I get frustrated when people talk about it as if it is the only solution out there, and how your not really ‘part of the crowd’ or something if you don’t use one! It also is frustrating when people frown on application development that ISNT done with the Arduino! ‘Oh it doesn’t use an arduino, its not worth looking at cause I cant cut and paste it!’ It also bugs me that it has become a badge of ‘Blog Cred’ i.e. ‘Yea, I use the 'dweeno, therefore I’m a cool embedded designer blogger!'
      Yea? Well the guys who created the 'dweeno that made you and your blog so 'cool’ are the guys who actually did the real work that should be admired, because it allowed you, ‘Joe Shmo Blogger’, to make a wiz-bang gadget with little or no understanding of how it really works! From my standpoint as a professional, I would definitely be proud if something I had created had such ramifications! Let credit be given where credit is REALLY due… BTW, the video was great! Really neat to hear what their initial vision for the platform was, and see what it has become!
      That being said, long live the Arduino, and may more powerful minions of creativity rise after it to bring greater power to the masses to build their dreams upon! O all of you embedded ‘Haters’ out there, and even my self to some degree, create stuff to enable those around you to grow their skills and enjoyment in the world that we have enjoyed for so long!

  • A lost opportunity to wire ADC6 & 7 :-(

  • Theres just layers to everything. Not every driver of a car has to know how to build the engine under the hood. Why? Because maybe that particular driver is a Doctor? and he has a whole other skill set that he concentrates on thats important within his paradigm, a skill set thats not important to a Mechanic who practices repairing engines. So the Doctor uses the car to drive to his office. A means to an end. The same when the mechanic goes to his office when hes sick. A means to an end. Everybody has an end, and everybody uses a means to get there with.

  • I think Atmel AVR microcontrollers are awesome as well as Arduino, although I have not used the latter. I have enjoyed spending countless hours writing my own methods in C programming language to do things that the Arduino libraries do out of the box, but majority of people would likely be the opposite. OpenCV (Intel open source computer vision library) on the other hand is something I’m not currently trying to reinvent the wheel on :-), although I will definitely dabble in the DSP of things.
    I am a fan of rapid prototyping though, and as such LOVE Python! If/when PyDuino emerges I will probably be compelled to use it.
    Lastly, I think it will be a great tool for high school students vs Lego NXT which uses a 50MHz Atmel ARM processor and typically a visual programming language (I’m a 3rd year volunteer Lego robotics judge)

    • Speaking of Python. Can you tell me what exactly do you DO with python. I hear it thrown around a lot but in the hacker/project setting what do you use it for? I’ve learned C, C++, Java/Android, Visual Basic but never really knew how Python fit in to things. I’ve done a little reading about it too but didn’t really find anything that I would use it for to make little projects.

      • well in terms of embedded projects, i’ve only used python for the telit platform. made me that gps gprs tracking device fro the total cost of $400 when i can now get one from chine for under $100 :( . otherwise, yeah, i dont realy see the use of python on embedded devices..

      • Gear Jammer - I’m a Java Developer, but I use Python a lot for rapid code solutions. I could do everything in bash almost as easily, but I find that I can whip up a Python script and give it my developers for use on their Windows machines. We use it for more elaborate data fixes. Python has a simple, straight-forward sql lib.
        I’ve used it at home to write the PC side of a bootloader for the mid-range pic chips ( parsing 8 bit hex files and communicating with pic over USART ).
        Come to think of it, Python is a lot like Arduino. Quick, cheap(free), good for beginners, allows rapid expression of an idea/solution. I don’t prefer it, but it has a place.

      • Python is great for the desktop and web. I personally use it for one-off scripts and custom desktop apps (w/ PyQt for GUI). If you’re already happy with C++ & Java, I could understand why you would have a hard time finding a place for Python – those languages probably already meet a lot of the needs that Python would handle. I’ve had the same problem with Ruby (among other languages) – it doesn’t really let me do anything new, it doesn’t remarkably affect my productivity, and my current tools seem reliable enough, so it’s tough to justify learning yet another language when I can just sit down and solve my actual problem with a language I already know.

  • It’s been amazing watching the Arduino take off and gain lots of momentum, but I can’t get over how the headers aren’t on a .1" grid. I don’t know why, but that peculiar choice drives me bonkers.

    • The proper term is a design flaw that for some reason was left alone instead of fixed. Since it is open source, anyone could make a new design and fix that, but since the market was flooded with band aid shields, the flaw still remains.
      Check out the Propeller ASC on http://www.1mgh.com It works with Arduino shields and is also fully 0.1" grid compatible.

    • I always wondered about the non-standard pin spacing. Turns out it was a last minute mistake. Rather than scrap a bunch of boards, (and it’s to late with all the shields out there anyway.) we now have weird spacing. I fixed it with some bent headers that change it back to .1
      It’s just a minor annoyance.

  • [rant begins]
    Hate to be bashful about it, but I have say it.
    Why would a newbie to software/hardware design would pick such a basic (as in very low speed and GPIO number) and expensive gadget when the market is full of cheap and powerful (compared to Arduino) FPGA boards?
    [rant stops]

    • I am such a newbie. I know little about electronics, but a lot about software development.
      I actually own a FPGA development board, and am the first to admit I am quite lost when it comes to using it. FPGA development is not yet friendly enough for the beginner. Just getting the software installed and running is a challenge in itself. Xilinx has only recently started supporting 64 bit Windows platforms, and the software package to download is more than a gigabyte.
      Verilog and VHDL are not ‘user friendly’. The FpgaC project, which brought the hope of a free C to FPGA development, appears to be dead. I have been looking at ROCCC as an alternative, but documentation is lacking, and again the tool set is limited to specific platforms. We need C development to open up FPGA development to the masses, VHDL and Verilog are never going to be ‘easy’ enough for people who just want to tinker.
      After all my investigation, I am back to microcontrollers. I am a believer in using the right tool for the job, and while the pin count on a microcontroller may be low, it doesn’t mean they aren’t up to the task. The microcontroller is the right choice, because it is capable, and provides a practical route to implemention.
      Realistically, when does the hobbyist need a 50MHz FPGA? Even my most complicated project I am interested in compelting right now, should be fast enough on a 1MHz microcontroller.
      I am not saying the Arduino should be looked upon as the solution. I don’t intend to use the Arduino in any of my finished projects, I don’t intend to buy the over-priced shields, it’s just a development platform, and a good place for a newbie to start.

    • For one thing, there is a HUGE difference in ease of use and approachability between FPGAs and the Arduino platform. I can’t stress enough how big of a difference it really is.
      Secondly, there aren’t many good cheap FPGA boards out there. They all seem to start around $50 and go up (I have seen them over $2500).

    • A number of reasons.
      1 FPGA are more expensive. I buy Freeduino clones for $9.95. The cheapest FPGA is $50. FPGA boards are not targeted to deployment, but protoyping.
      2 FPGAs have their own language. You have to build, in SW the operating guts of what you are trying to do. And debug it? Don’t discount the difficulty of this. And this is before you even get close to working on your ‘real’ project.
      3 ALL FPGA SW is proprietary. All the cool little things you need like SERIAL, I2C, SPI are proprietary. To deploy anything you make you have to PAY $$$ to vendors like Xilinx.
      4 Then you need all the tools for the system you designed and built, so you can write userland software to run the project. Did you choose wisely here, or develop a FPGA that you now have to write all the libraries for?
      ARM7? Old ARM7 have lots of libs and are cheap. You get lots of power, but still, software for basic stuff like SD cards/FAT16 can be a challenge to get working(there are many to choose from). SW is all over the map. I found myself integrating all kinds of code from all kinds of styles and designs.
      STM32? Nice chips, powerful designs. But again, SW is all over the map, especially if you try to stay open source, and not buy say Rowley Crossworks at $1500 per user. At this point when I was developing arms, I knew how to tweak startup.S codes because you needed to know how to do that to get various compilers, libraries and chips to work together. Not fun.
      Arduino? Cheap, sure they are smaller, less powerful. Tons of software, most of it provided in the base system. Common design of libs, and hw make getting up and running a fast deal. I wrote a RTC lib on my second day with the HW (my rtc was not supported) using another RTC as an example.
      So why not PIC?
      Because PICS suffer from proprietary compilers and software too. I have to pay $150 for the cheapest compiler for a pic project, (that arduino could also do easily), so that will be the last pic project I do.
      My observations.

      • 1> Price: please take a look at the whole picture. (Also, ebay is full of cheap boards, unless you have a problem with Chinese products :-))
        2> I see no problem here.
        3> All FPGA firmware is NOT proprietary (see opencores and sample code that you can find online) - by your rationale, using a standard interface should cost you money no matter the implementation (Arduino/Altera/Xilinx/ and C/C++/Verilog)
        4> Erm, you need to write userland apps anyways. Or do you intend to read temperature and ADC values over hyperterminal ?

        • You REALLY can’t compare microcontroller development to FPGA development. For example, just imagine trying to do some basic floating point in an FPGA. You’d either get someone’s floating point core or make your own. If you are going to use someone else’s core, you aren’t going to learn anything about hardware design. Also, no matter what anyone says, FPGAs are a lot more expensive than microcontrollers. That is a FACT!
          Don’t get me wrong, I absolutely love FPGAs and absolutely HATE the Arduino environment. I work on FPGAs everyday as a profession. I have quite a bit of experience programming microcontrollers at a low-level. However, if I want to test some chip on a common protocol, I always use an arduino to test it. The library setup is quick and easy (yet horribly inefficient). Arduinos are great for quick development and testing, but not much else.
          My conclusion is that Arduinos are great for people who have never programmed microcontrollers before. However, I think everyone who has figured out the Arduino should migrate to bigger better microcontrollers. The Arduino library really limits your knowledge of using hardware. Try using an ARM, Coldfire, or just AVR without Arduino. I guarantee you’ll learn way more! Once you learn low-level design, you’ll never want to go back!

      • About PIC programming, in fact you can get MPLab for free and you can also get free version of compilers for all the PIC chips, ranging from the small 8 pin 8bit pics up to the pic32 and the dsPic’s too, it will only compile at -O1 but it will optimize the code a lot and its free for any code-size and with only a Pic-Kit 3 you can programm any PIC chip.

    • It’s all about the community. Arduino has a great, centralized forum where they lay out the language and the hardware in plain language with examples and places where people can discuss their projects and they’re always taking feedback and generating revised versions…
      I say, “Be the change” man. Go spread the word of FPGA Dev Boards. Build a community.

  • Basically, the idea of Open Hardware was a new concept and no one can imagine in that moment what this little board can do as it cheap price. Remember the days of huge development kits for hundreds of dollars that was basicaly sobre 8bit microcontroller, power supply and few heaader pins?
    Hate it or love it, here is the power of open source/hardware.

  • Hey Nate you said you didn’t really wrap your head around what the arduino was at first. What was it that you didn’t get about it? I didn’t know about sparkfun back then but sparkfun has prob evolved alot since those days cause it seems like a nice fit now. Do you get tons of little widgets like that people want sparkfun to sell?

    • Great question - it has to do with the gamble. Every product that comes across our path, we ask ourselves: why should we carry it? At the time in 2007, Arduino looked and sounded like every other dev platform out there. ‘It’s going to be huge!!!!’ We hear this from every board developer, so I was very skeptical. I didn’t know how it was going to gain traction and differentiate itself. It’s obvious now, but at the time Arduino was an unknown.
      Arduino was the perfect storm of sorts. There are various theories, but somehow it caught on big and people will be studying those starting variables for years.

      • Ya come to think of it that’s one of the reasons that keeps me coming back to Sparkfun. I know you guys don’t sell every hot fad that may come out. So when I’m looking to do something i can always stop by and see what you have to solve the problem and know its quality hardware. Nice work!

  • Blast, why do I have to go to class right now…
    I’ll have to wait to watch the rest of this,
    great stuff though, I’m a BIG ‘duino fan.


This Week

This Month

Heartbleed

Happy Arduino Day!