There’s been some really awesome debate going on about how the arduino “won” and some responses from other microcontroller and hacker communities. Now, I know that the counter argument presented at hackaday was well thought out, and for a large group of hackers, their actual argument may be true (“the arduino is overkill for most things”) but… I’d like to explain why I’ve chosen the arduino for beatseqr.
1. features — The programming environment is available on every platform that 99%+ of end users would use or have reasonable access to, and it’s pretty easy to work with. There’s a ton of code out there to help you get a good understanding of how to get started. It has an integrated USB to serial interface, which I use extensively with beatseqr. It has an easy to use power supply for my project.
2. cost — Limitations always bring out your creativity. For some, the limitation is the cost. So they do what it takes to get to their results with less parts and less cost. For me, the limitation is time. My time is way more valuable to me than the cost of the arduino. Yes, it’s true, if you’re doing an RGB LED mood lamp, the ~USD$35 cost of an arduino uno is way overkill. Consider this, though. It’s obvious that it’s overkill. It’s way above and beyond what you’d expect to *leave* in an RGB LED mood lamp project, so it encourages you to take your successful early projects apart and build something else. So the expense encourages you to squeeze more utility out of your purchase, which encourages more learning. For beatseqr, the benefit I get from having all of the arduino mega ready to plug into my board makes the cost worth it. It’s a significant portion of the work already sorted out for me, and I feel like that’s an acceptable factor in the overall cost of goods for what I’m doing. In fact, it’s been my plan all along to offer a version of beatseqr, *without* an arduino mega in case you already have one.
3. availability — There’s many different variants, but the same basic functionality. As long as the IDE works for the board you buy, and you understand how to connect the board to your computer, you’ll have a predictable experience. Because so many people produce variants, you can find them all over the place. To include the above point, you can find an arduino for most every price point and form factor need.
4. upgradability — with the exception of the new surface mount boards, most arduinos have their main chip seated into a socket. So that made it pretty simple to order a ~USD$5 chip and double the memory in my arduino board. Presumably if Atmel continues to produce higher memory versions of the chip that the arduino uses, you would be able to continue upgrading an arduino fo evah.
5. easy user access to program, reprogram, and/or repurpose — You don’t need to know much when you buy an arduino. You don’t need a whole lot of extra parts to program one. My admittedly limited exposure to working with bare AVR chips was interesting and confusing and short lived. And I know for a fact that it’s the right set of tools for some people. The people who can get their heads around the command line tool chain to program bare microprocessors are people who you want to call your friend, definitely. And I also feel like it’s ok that I’m not one of those people. Basically, the arduino mega snaps onto the beatseqr board. If you ever get bored with a beatseqr, you can take the arduino mega out of it and reuse it for something else. 🙂 That’s a plus in my book. My goal is to never let the beatseqr become that boring. But you could if you wanted or needed to.
6. firmware access — There are options. You can release your firmware or not release your firmware. There’s a reasonable expectation that a relatively technical user could download a firmware upgrade and reprogram a product you make that includes an arduino. Or, better still, modify the firmware to suit their exact needs. This may be possible with other microprocessor solutions, but I really feel like the arduino’s cross-platform programming environment is suited for the widest possible number of users. You download it go, regardless of what computer you’re on. If Pic or Parallax had cross platform gui programming environments, maybe I’d look, but they don’t, so I can’t. By the way, I also don’t program postscript or gcode by hand.
To recap, beatseqr isn’t like most things that are powered by an arduino. 🙂 So using the arduino isn’t overkill. In the most simple way, I’m using almost every pin on the arduino mega for the beatseqr v4 circuit board. Two pins were intentionally left unused explicitly for hacking. And now that I’ve been working on the project for almost two years, I’m starting to imagine a better user experience, and that will require more i/o than even the arduino mega has. So that’s pushing me to learn some things beyond the arduino… which i think is exactly what both Phillip Torrone and Caleb Kraft were advocating, just on different websites.