5 ms·
AVRs are great for small embedded applications (I think only 8-bit architecture with good compiler support), but I don't get why Arduino is so popular. Poor "ID
by garaetjjte 9y ago
AVRs are great for small embedded applications (I think only 8-bit architecture with good compiler support), but I don't get why Arduino is so popular. Poor "IDE" with some horrible C++ preprocessor, heavy libraries abstracting important hardware details, and no onboard debugger.
- hugs 9y agoDon't underestimate the power of plug-and-play ease of use and the inclusion of dozens of ready-to-go example programs. And good documentation. And a welcoming, friendly, active user community. And marketing to people who want to make something light up or move, and don't (yet) have a need for an onboard debugger.
- dekhn 9y agobecause the same code runs on 5+ different architectures without porting. That's really more about WiringPi and the libraries with #ifdefs, but the value is there.
- sokoloff 9y agoThe "problem" that hobbyists had, pre-Arduino, was not that they couldn't do cycle-accurate interactions with base hardware, but rather that they couldn't get the moral equivalent of "hello world" running in any reasonable attention span. (In micros, this is an LED blinking under program control.) Arduino solved the "easy on ramp" problem; that was the problem that needed solving. This allowed a community to spring up (because now everyone had the same hardware [initially]) and so sharing was possible/easy in a way that bare AVRs on random breadboards didn't support.
- lmilcin 9y agoBecause of the time an knowledge it takes to blink a LED. When you are complete newb, you can't diagnose and fix problems. By definition you can't yet understand how things work which is prerequisite to debugging. This first step is then most critical -- if it doesn't work immediately many people will be just put off completely. If it works, people can tinker with it, see result, learn, etc. They can't learn in the absence of feedback. Newbs will not be able to judge if IDE is "poor" or C++ preprocessor is "horrible". What's most important is that it works right away.
- kayfox 9y agoI like the simplicity of the IDE, you don't have to muck around with a bunch of stuff or spend an hour configuring the debugger just to compile and download code to the target. I'm also fairly sure thats why its popular with more artistic people.
- ajford 9y agoBecause for the average user, the features and power of a "Good" IDE are at best a nuisance and at worst a barrier to entry. I've tried using some, such as a brief stint with Atmel Studio some years ago, Eclipse, and a couple others I can hardly remember. My biggest complaint was how tedious it was to start a project. They start asking you questions that a hobbyist isn't going to have enough background to answer. Arduino takes those and hides them. Yeah, it means you might have less flexibility, but by the time those important hardware details actually become relevant, the user has probably amassed enough experience and knowledge on micros and AVR chips that they'll now be able to use those fancy IDEs. Arduino isn't about being the final product, or for becoming the next best IDE, it's about teaching, learning, and prototyping. It's about teaching a generation that programming, hacking, and technology isn't out of their reach or understanding. I've taught middle schoolers from rural areas in Puerto Rico how to control things with an Arduino. One of them build a timer/thermostat for their house using scavanged IR leds from a broken TV remote, a few passives, and a temperature sensor that costs about $0.50USD. He now has a system that will turn on and adjust the Mini-split AC unit in his room, so it cools his room down slightly before he gets home. His unit was an older, cheaper model that did not have a built in thermostat (or the thermo died, I'm not completely sure). That student now wants to go into Electrical Engineering in college, and now thinks he stands a chance at getting into college, where he didn't before. That is why Arduino is so popular.
- user5994461 9y agoI have never seen a good IDE in the embedded world. Between the impossible setup, the non existing documentation, the examples that don't work if there are any. Just kidding, there are never any example at all. Arduino can actually run a program and do shit. You can turn on a led in your first hour. And if you are an experienced programmer you can google the name of the function and see what arguments it takes and turn the led off and on. Amazing. Blinking a led is a 3 weeks project on a normal hardware platform. And that's when it goes well.
- icebraining 9y agoEarlier fully-integrated boards often used BASIC (e.g. BASIC Stamp and PICAXE). With an Arduino you're already closer to the metal, and you can easily "graduate" to avr-gcc. Maybe there was another board that could do this, but if even I didn't learn about it, they sucked at promotion.
- bjt2n3904 9y agoIn short, the Arduino was popular because how bad everything else was. Travel back ten years, and look for an embedded development kit. This is what you'll find. Average cost is gonna be about $100 for the board. Oh, did I mention you'll need another $80 for the programmer? It only runs on Windows XP, by the way. Closed source custom USB driver that no one understands. Wine chokes out, so no running it on Mac or Linux. PS: The programmer was the "student edition". You'll only be able to program their low end series of chips, and hardware debugging is disabled. I forgot to mention. You're limited to the free assembler / IDE, that only allows you to use 4k of space. If you want to use any more, you need to purchase a license for $250. And by "integrated", I mean no using your own makefiles or editors. There's no "stack overflow" style community, either. Your support is limited to poorly written app notes behind a crumby web portal. And then the Arduino came out. $20 gives you the board, and programmer. No licenses. No drivers. Open documentation. Works with a fork of GCC. Want to use VIM and Makefiles? An Eclipse based IDE? Work on a Mac? Comes with a vibrant community, a repository of examples, and inexpensive addon hardware. TL;DR - Want your product to die? Force me to use your crumby closed source / "evaluation period" tools from the 90's, lock everything away behind NDA's and web portals, and provide no support community for your product. Looking at you, FPGA manufacturers. Does your revenue come from selling chips, or selling crap development environments?
- sorisos 9y agoI have the same experience with FPGA development boards. I wanted to learn VHDL but gave up after 2 days with the "getting started" tutorial.
- lmilcin 9y agoThe assumption here is that if you go for FPGA design you should already have at least some knowledge of embedded applications. FPGA development process is aimed squarely at corporations and rightly so. There is very few hobbyist projects that really require FPGA. Most of cases where I saw FPGA in use was not because it was needed but because the person didn't know how to achieve the result using other, more appropriate means.
- qualitytime 9y agoEasy cross-platform install and within a minute, when you see that onboard led blink, you're hooked.
- IgorPartola 9y agoSame reason WordPress is "better" than whatever fancy CMS you prefer. It's accessible. I dislike the Arduino IDE, but it's so underpowered that getting lost in it is nearly impossible. The variant of C it uses is actually not bad at all for what you end up doing with AVR's. I have looked at Lua and MicroPython and for me the problem is that they do a little too much abstracting away of the hardware. I mean on the one hand, great I can write Python. On the other hand it might not work because you don't have the low level control you need inside interrupt handlers to not screw up your state. As for the pre-processor, well again it's not something most casual users use. I remember looking through WordPress's core code about 10 years ago and there was a statement in there that amounted to variable assignment... but using a damn eval(). Does an average WP user care?
- bittercynic 9y agoMy anecdote (which I suspect is common): When I was brand new to embedded development I spent dozens of hours struggling with a bare ATMega8 before finally getting an LED to blink. It was all simple stuff, but overwhelming when you're in a new and unfamiliar environment. After playing around with that for a while I got an Arduino, and was able to blink an LED in minutes, and there was a clear path to move on to more sophisticated things. I completely agree that the Arduino IDE is horrible to use, but it makes up for that by making it easy for beginners to get started.
- HeyLaughingBoy 9y agoBecause it's easy. I'm a professional embedded systems engineer and I do tons of side jobs with Arduino because I can build a one-off in an hour whereas on a bare AVR, even starting with my own prebuilt framework, I'd be looking at many multiples of that time. Right now I'm working on precision motion control using resolvers and I'm still building with Arduino because of all the readily available parts in that ecosystem.
- bsder 9y ago> I don't get why Arduino is so popular The community. If you can write a PID loop, you aren't the target audience. If you have an old toaster oven and need to control the temperature and you have no idea what a PID loop is, you are the target audience. You can go get an implementation from the community for "the thing that controls temperature" and get on with life.