
That’s assuming you do. We’ve noticed a general malaise towards the Arduino and/or Arduino projects in comments at tech blogs. Arduino is to Hack a Day as Knex guns are to Instructables.
What’s the deal? Too many newbies with blinken LEDs? $30 is too much for an AVR with a bootloader? Is it the platform or the projects?
We all know the arguments for the Arduino: it’s an easy and open prototyping platform with free tools and great community support. But why do so many geeks detest the Arduino? Why the hate?
We’ll send a free Bus Pirate v3 PCB to the commenter with the best rant for- or against- the Arduino.
Speaking personally, we don’t hate the Arduino. We don’t use it, but that’s because it’s way to expensive for our tastes, and custom hardware is our shtick. We enjoy designing a custom hardware solution for a given problem, and Arduino abstracts that into a software exercise.
Image derived from, and licensed under:

As part of my Electronics degree we focussed far more on FPGAs than uProcessors so I inherently don’t like uProcessor based designs. FPGAs will rule the world!!!
Personally in my Electronics degree we focussed far more on FPGAs than uProcessors so I am inherently more biassed towards them. FPGAs will rule the world!!!!
(Apologies if this is a double post, my browser is doing strange things – powered by a uProcessor that’s why :-p )
What a peculiar approach your university must have had. Both have their place. Maybe development time and hardware cost don’t matter in your job? I don’t get the Arduino though. It’s just an AVR with a gay name and a level of obfuscation and “proprietaryness” thrown in. Why don’t people just make their own board and program in C – ignorance makes newbies think thats a lot harder than it is. Assembler for micros is easier than newbies think too, its just more time consuming than C. AVRs only need a small handful of extra components they have almost everything built into them as is…
Personally, The Arduino Nano 3.0 is the best $14 I ever spent on a gadget, I have it plugged into a breadboard, so I have plenty of space to plug things into the individual pins, I normally use it as a serial to USB adapter to sniff RS232 on electronics, hooked it up to various sound chips and amplifiers to understand how it would be wired.
Its like a tiny computer with a somewhat limited digital and analog interface, but its a useful tool to explain how certain things work to other people such as the importance of polarity in systems (poof goes the LED!) Sound Generation from a digital interface, real time data detection and other nifty things you could do with an 8-bit processor.
I like it because its basic, easy to use and its something to enjoy when you’re not huffing solder building Important projects.
What I hate from Arduino is the lack of soldering in the projects.
Solder fumes make you stronger!
by the way I would make my dreams true with a bus pirate V3 board.
Ian I’m working on “illegal” support for AVR on pickit2. The sources claim that software development is legal only if you pretend to progam microchip devices.
Anyway Fxck them all.
I think that the hate stems from the old-school hackers’ belief that you have to know everything about everything before you can do anything, and that the other 97% of the population is just plain wrong to not think the way they do. In a perfect world, noone should be allowed to operate a motor vehicle without fully understanding the nuances of the internal combustion engine.
That, and never getting laid.
Arrrrrrgh….! Arrrrrrgh…!
… sorry, just practicing my v3 Pirate-speak.
That is a stupid reasoning and reality shows what kind of people uses an arduino .. the 3% of people that “know everything about everything” are the guys that put the arduino together so you (and the rest 93%) can play with it !! Thank God for the “old-school hackers” that are the people that REALLY KNOW ABOUT EMBEDDED SYSTEMS AND ELECTRONIC and can make “toys” like the arduino for people like you that DO NOT HAVE A CLUE !
The bottom line is that despite any shortcomings (non-standard spacing pinout?!), it’s one of the most heavily supported pieces of hardware out there. Whatever chip or piece of hardware you want to interface it with, someone has already done it and there’s a tutorial or even a library for it. That may make it seem like a piece of hardware for noobs, but really, we all need some help sometimes. And why spend time reinventing the wheel if someone’s already done it (unless you really want to figure it out yourself).
Because since the arduino, the PIC is getting lesser attention, and also, the abstraction from the hardware, provided by the scripting language it uses and the huge quantity of pre-made libraries makes most interesting projects a real pain to port to another non-arduino uP platform (like the PICs)
That’s why I dislike the arduino
I love Marmite senarios. Are there anybody who’re just not fussed about that stuff? A kinda, well, I’d prefer it wasn’t on my toast, but I’m won’t run screaming if it is.
I have a microsoft-like opinion of the Arduino.
I haven’t owned one long, and have not had the time to put it to much use yet. I love that it’s unbelieveably well supported, its open to new uses and variations, it’s not hindered by corporate greed or desire for control of ideas. I love that the language is simplified and presented in almost-english. I love the community it spawned and the number of people who have been able to do things with it they wouldn’t have had the knowledge or support for otherwise. And I love that it’s something I can one day give to youngsters to help them learn about and develop a passion for electronics.
I hate it because I worry that if I get too deep into it, I will be unable to develop the skills in ‘proper’ C I’m learning at Uni. I hate that it’s furthering the idea that so many engineers tie themselves to one type of manufacturer or family when theres so many other useful chips, many that could do even better. I hate that it’s simplified C is trapped in Atmel AVRs, and that no-one seems to be looking at how to port it to chips by companies such as Freescale, the company my university is attempting to tie me to.
And I hate that I could never have thought of such a great idea…
I hate it, because I own one and still can’t think of an decent, or useful original use for it. It just collects dust. I would also have to say it isn’t powerful enough for any of the ideas I’ve come up with. I hate the row of offset pins. The Arduino is too large for what it is, to an extent. It should be 75% of it’s current footprint for the standard sized Arduino. There are too many versions of the Arduino, the Arduino Mega, the Seeeduino, the Arduino Pro. It is over-capable, and under-powered.
I have never tried any Arduino hardware, but hate it I will for a Bus Pirate. Also, for maximum learning potential – pure C is king.
It’s all about procrastination.
I hate hate HATE the arduino, because it so deeply disrupts this dependency on procrastination I’ve built up over the years.
For SOOO long I have been planning out projects, and instead of the hassle of actually building the stuff I wanted – digital control for my modular synth, lighting control for my band – I could just safely and easily say “oh, that’s for when I get better at assembly code” or “oh, when I figure out wtf a Gerber file is… ”
Now I can’t hide behind that shit; it’s a 30 dollar project… at most. DAMNIT!
:-(
Arduino: Making procrastinators STFU since 2005.
Andreas
I’ve done some more complex C++ code with the Arduino — see my project at http://webduino.googlecode.com. The IDE doesn’t force you to use the simplified language, especially if you develop separate library modules. I have found it to be a very quick way to get some projects going, and I also love the community support around it. I’m just now starting to move into making my own PC boards and developing complete circuits, but I’d never have gotten here without the Arduino as both a learning tool and as a platform for experimentation.
2K of RAM ……..
30K of code …..
You can write (rather) large software, but you can’t run it !!!!!
I don’t hate arduino’s just the concept, my prefrence is for Pic’s, small jobs 8 pin, big jobs, 44 pin, my C & asm knowedge is self taught through trial and error and reading datasheets, i’ve ordered a duino just to see what the fuss is all about, i know everyone has to start somewhere and there’s great satisfaction in blinking a led for the first time but theres more satisfaction in figuring out how to pwm the brightness for yourself, it’s true that the library support for duino’s is good, one problem i find coding for gameboy and DS is that when theres a library revision nothing works anymore, i some people moaning that their code doesn’t work and yurns out their using outdated librarys, and personally i’ve learnt nothing from using other people code, i think people like duino’s like people like Mac’s, fine but which generation ipod we on now? I think duino’s are best summed up by the fact that the editor is called a sketch pad and you download sketches to the duino, i don’t doubt the ability of the Atmega chips just think they could be put to better use, now Mac’s i do hate but thats anouther post, as for the bus pirate? well i have a breadboard, Pic18f4550, Micro-VGA Module and PickKit 2, what else do i need? other than a leson in formatting text maybe, actually i’ve found the uVGA module to be the most usefull tool i’ve owned, no more Lcd’s, unless the project calls for one, uVga is a VT100 terminal which connects to a vga monitor so 80 x 25 text as aposed to 20 x 4 on an Lcd
I like the arduino because of its flexibility and ease of use… I’m still a newbie at it… The most I love of it is to be able to use them in the most popular operating systems… I’d like to give BSD a try just look here…
http://www.exit2shell.com/blog/?p=57
I’d really hate it if it was the ONLY thing i’d use, What I disike about the basic types of arduino (diecimilla and duemilanove) is practically because is just a bit expensive to buy… every thing can be done by scratch, but well, I was curious and excited to get one. I think the arduino mega is worth buying …
Frankly what I really hate are some Microchip Microcontrollers, well only the DSPics, I’d rather USE a FPGA or a real DSP for the same applications a DSPic has… I’d rather like to use Cypress PSoCs or Freescale because those ARM based microcontrollers and of course, embedded development kits involving ARM architecture processors and FPGAs, I like them better. My Uni ties me to use the Microchip-Windows combo and I really hate that… that even makes me hate windows too sometimes and bores me almost every time :P :P I’d like to use various kinds of uC, embedded development kits and all that stuff.
Well, I don’t use and I don’t hate arduino, honestly I like PIC, the only thing that really hate and is the arduino crew (not all, some are nice guys), they always say “Arduino is much better than PIC” when there is no point of comparison, they compare a complete board with a functional microcontroller AVR loaded with a bootloader, is good for beginners (no programmer, no PCB or circuit building to make the AVR work) save a lots of headaches, in other hand the PIC is only the microcontroller alone, without bootloader, without a circuit board, in other words arduino users talks about arduino like a microcontroller and then they make comparative between arduino and PIC.
I personally love the Arduino! I think that any “hate” that it attracts is likely due either to misinformation or ignorance about the platform. At heart, it is simply a carrier board for the ATMega, with a special bootloader to make things easy for beginners. You don’t -need- the bootloader; an ISP interface is right there if you want to hack on it using avrdude. With the Arduino system, yes there are some “incompatibilities” with C++ code, but nothing says you must use the Arduino system to develop (but it is pretty nice). Other than that, its pretty standard C/C++! Its open source, its “free” (ok, the microcontroller itself isn’t, but the ATMega168/328 isn’t a budget-killer chip). There are even ports for some of the ATTiny parts (84/85), as well as for some of the bigger chips (ATMega644, 1280, 2560). I am not sure what is really to hate…
agreed
donrata is right on the money !!!, these “hackers” blinking leds are polluting youtube and the rest of the internet.
These “hackers” as they like to call themselves should get real, I’ve not seen one real engineering project done with this platform, and the fact that they use apb modules like the WiFly grimes my gears.
Blinking leds, dataloggers, temperature sensors, lcd displays, it is getting too repetitive for me, like a virus.
You’re right…
That’s why I’m trying to know more about with C++ and python and ruby, so to be able may interface it with a good embedded SBC… that’s the real problem!! many people just use what they find but don’t take the time to develop something different and somehow interesting in progress like these guys do:
http://concurrency.cc/
Their main project is to do plumbing with Arduinos, so it’s a better way to do the same stuff IMHO :P
The number biggest problem with the Arduino is the C-like language. I say C-like because it looks like it but C has NO standard across platforms. Remember Borland C? Then try gcc on Linux. The two dialects look the same but you end up having to learn a whole new C on any different compiler. The Arduino itself isn’t the problem. C itself being about as standard as human language but with incompatible dialects. (think of an inbred redneck dropout meeting an Aussie)
The Ardunio sucks because the “make” community has co-opted it. The “make” community sucks because it’s composed of dirty hippies who are building crap for burning man and stupid hipsters who want to make vests covered in LED’s or some similar pseudo artsy garbage.
And if I’m going to spend $30 why not just buy the AVR ISP programmer? And why not use AVR studios? Last time I checked it was free (or at least there is a free version)… The arduino just sucks from every angle. You’re stuck using one processor, the IDE doesn’t hold a candle to AVR studios, and the people who get excited about it are a-holes.
ahem, it doesn’t cost $30 for one. it only costs like,$3-4. the thing is if you want an official one you need 2 pay more.(for the good cause of donating money 2 support the community )
Wow, Paul. You denigrate “hipsters”, yet you’re the one whining because your scene has been co-opted by the mainstream. Your post is the best argument in favor of Arduino and the “make” community I’ve read.
“You’re stuck using one processor, the IDE doesn’t hold a candle to AVR studios”
Just fired up the Arduino ide and in no particular order my choice of processors is
328
168
644
45
26
85
2313
48
640
AvrStudio? You’re stuck using one o/s… Windows, Yeah great.
not a processor, microcontroller. are u using it like a raspberry pi?
p.s its got no os 2
There have been many references above to the Arduino “language” or similar.
There is no Arduino language, Arduino uses C/C++ and the GCC compiler just like 90% of platforms around the world.
If you want to write hardcore C or C++ then go for it, even in the IDE. If you want to use AVRstudio and ISP, that works as well.
What there is are a 1000 libraries to abstract the hardware, if you don’t like that then don’t use them, but HALs are a standard method of improving productivity.
Remember also that half of what we call “C” is actually library code, “printf” is not C, it’s a function in one of the standard libraries. The only difference is that everyone has it so it’s more portable, but unless there has been a HAL written for a given platform printf doesn’t work either.
In embedded systems nothing at the hardware level is portable, it doesn’t matter what language you use. And given that there are new PIC/ARM/etc based “Arduinos” out now that implement the Arduino libraries you could argue that using functions from said libraries creates more portable code.
The IDE is crap, everyone knows that, I believe there’s something new on the horizon but meanwhile you can use your editor of choice and a makefile, Netbeans, Eclipse and even VS2008/10 as your development tools.
It’s unclear if many people use an Arduino as such in a commercial product, probably not, it’s very clear though that they are used by professionals for “proof of concepts”. To be honest I’d have a good look at the library code before I used it in a commercial product, some of it is not that clever, non-atomic access to ints for example IIRC.
I’ve been working with uCs for 30 years, right down to the bit-slice processor level, I love dicking around with the registers and the bits. But we all know how frustrating it is to get a UART working for the first time and that barrier will stop most people from getting into physical computing at all.
Arduino largely removes the barrier.
I use the arduino for industrial projects. Process control, product testing stations, data logging and much more. I’m able to proof of concept a project, and then get it into production in just a day or two. I love it.
I LOVE, LOVE the Arduino. If I tried to do what I’m doing with the Arduino what I wanted to do 14 years ago, I would have had to have learned assembler, and quite frankly, I’ve never liked programming. Nothing drove me up the wall faster than sitting in front of a screen, making a program, and watching abstract things happen on the screen. Even more so was assembler, or even C which made my eyes glaze over. I like being around people, interacting with the environment and with things. I like messing around with hardware, solder, using my hands. The beauty of the Arduino is it’s
A.) Rapid prototyping
B.) Got a HUGE community to support, thanks to Open Source (Good luck PIC on that one!)
C.) People are happy to help you out, from beginners who are just getting a handle on it to the hardcore oldies who’ve been around on for a long time.
D.) Let’s you very quickly, with very few hassles, interact with the environtment and with things.
Fact is, too many engineers at the Microchip, Texas Instruments, and Arm places are just that. Engineers who do things for other engineers. And expect the others who work on their products to ALSO be engineers who’ve at least got masters or something. They forgot that we’re humans who often just want to get concepts working without the pain. The Arduino solves that problem. You can see that those engineers STILL haven’t figured that concept out even with their recent releases of “Arduino killers.” when it comes to pricepoint, learning curve, accessible documentation and tutorials, and sheer volume of libraries for pretty much any piece of hardware you can find.
Right on! But I do think that Atmel AVR is only what it is because of the arduino. A similar thing could have happened for PICs but it didn’t. Some guy somewhere (creators of arduino) sat down and came up with this idea that used an AVR based device and all of a sudden it took off. I’m sure it could have quite as easily gone the other way with PICs but it didn’t.
I think it’s easy to become blinded by the greatness of one device and not look at other options, but sometimes there can be better options elsewhere. Don’t get me wrong I love my Seeeduino (yes I was a cheap ass…) and all it’s versatility. But sometimes you want to use another micro for some specialised function, size or cost!!! I think PICs are generally cheaper (I heard somewhere but don’t quote me on that).
I’ve been using PICs for as long as I can remember but recently haven’t touched one in favour of arduino, but there are times I need to implement something and wonder if I’d be better off with another micro.
” I do think that Atmel AVR is only what it is because of the arduino”
Sales of AVR chips via the Arduino represent a miniscule fraction of the total number of AVR’s sold.
Sorry, I meant in terms of hacker/maker community and it’s popularity now because of arduino. Though I’m sure this could slowly reflect in industry, more and more companies may give arduino a go if they think it can give them a fast design turn around?
Thanks, I didn’t expect a civilised reply. I think the GCC-AVR compiler plus the Arduino ide had a big part to play in the success of the Arduino.
Despite the criticism of the ide and libraries, it has made prototyping circuits with AVR’s very easy.
I’m from India, working as a part time Embedded/Electronics trainer. I hate the arduino because it is making it easy for engineering students to put together projects, in a world where arduino skills are not considered an employability criteria et al.
Arduino is for fun! Let it be for fun only.
I totally disagree, if something is open source and quick to develop with, then as an engineer that’s a perfect opportunity.
Just how AVR studio is a development environment intended to make programming AVR parts easier, so is the arduino IDE. There is no difference in the idea behind them. No one wants to program in assembler any more.
The arduino IDE may be newer but IMO within a couple years, it will be considered a good skill to have for employment.
You say that arduino is only for fun, but again, how is arduino so different from the other micro IDEs, I have developed useful products with arduino that I could sell if I chose to.
“No one wants to program in assembler any more.” honestly there is a difference between what people want and what should be. To downsize code down to miniscule levels without affecting the applications, you have to get into assembly levels.
You’re using Arduino to prototype designs fastly. Great :) But still IMHO, it wouldn’t be an employability skill.. even in the near future.
I hate Arduino because people who do not understand its limitations invariably either ask that I design a solution for Arduino or assume that every new electronic design is based on the Arduino.
One fellow wanted an elaborate EL-wire controller, but did not understand that it would cost more to make an Arduino shield than an embedded design with everything on one board. When you can make the whole thing for less than the cost of an Arduino, then why bother with the commercial product? His idea was that more people could learn to program the Arduino, but my hunch is that anyone with decent EL-wire skills can learn to program in C on an embedded processor like PIC. Of course, there’s nothing wrong with designing a custom AVR board that is Arduino-compatible.
Another fellow saw the advanced DSP board that I spent three years designing and immediately asked if it was based on an Arduino. Can the Arduino process 16 million samples per second? Can the Arduino calculate 128-point FFTs at a rate of 16,000 per second? The TMS320 can do both and still have cycles left over to keep USB bandwidth fully occupied.
I actually think the Arduino is great. I don’t really hate it, I actually just hate the way people with no experience assume that everything is Arduino these days. It’s a fad, but at least it has its uses.
That’s fair enough. I personally use arduino only to prototype an idea with then build my own board from scratch and just use the arduino code that’s already made.
It’s true that the right device should be chosen for an application. Arduino will never be able to do any serious number crunching but as a cheap and easy controller for some small application it’s perfect.
I’ll give an example, I’ve been designing a soldering iron controller that uses the Weller RT series tips, the board is 4 layer and only 8mm by 60mm big. The entire design is intended to fit inside a pen, with the controls and indicators also on the pen itself. All in all what was a £400 professional weller soldering station has been remade into a cheap and tiny soldering pencil for hobbyists. At the heart of it is a tiny MLF atmega168. The arduino code is simple and took a very short time to write. Overall this project took 3-4 days to develop, not including waiting for boards/parts.
Thanks to the arduino, it was quick and simple, and returned a useful little tool.
I’m making a decent living building process controls, and I use an arduino at the heart of each one. It’s a very employable skill. Needing to know assembler has not been a question on a interview for a long time. Technology marches on. I have lots of skills I have developed over the last 25 years that are no longer useful. Remember Arcnet?
@Steve:Well said Steve, but what about high end processing? Would high end electronics also feature Arduinos one day? We guess not. You have successfully carved out a career out of Arduino, that is awesome, and if you are keen on selecting people to assist you, its pretty obvious that Arduino would be a skill required. But will a company like Samsung or Freescale consider my Arduino skills as an employability criteria? Waiting for your reply :)
According to me, Arduino has shown the power of Open Source Hardware, and what could be achieved with it in a short duration of time… on a mass scale & that is simply awesome. My argument ends with this.
Adruino is no good for high end processing, but it shows the power that open source hardware has on a community of people interested in electronics. Arduino is so easy, it’s almost idiot proof, and for us engineers, it’s as simple to pick up as a bag of sweets. Why? Because it’s so popular that whatever you have in mind to do with it, the chance is, someone’s already done it. It’s often just a case of building up on their design.
What’s next in line in this world of makers and hackers … Raspberry pi? There is your answer to high end processing. Will it go in the same direction as arduino did?
I build process controls. I’m sure Samsung has chemical baths that require temp and pH monitoring that are an ideal application for an Arduino. I know we do. A hammer is no good for driving screws. Use the right tool for the job ……
Arduino code is pretty much C/C++ with a bunch of I/O. Last I saw, there is a pretty big market for C programmers, and industrial I/O requirements. So, will you see “Arduino” coming from an HR job spec? Maybe not, but the skill set is directly applicable.
I’ve never used an arduino board but I _HATE_ it with a passion.
I’m paying $50K/yr to send my kid to engineering school and they start them off programming on an Arduino. Talk about penny-wise, pound-foolish.
So I looked up the specs. on these boards. Really? 8MHz?! Oh wow! (or 16MHz if you buy the deluxe model (OOOooooo!)). Basically, it is a crappy old processor, with a crappy clock speed and crappy peripherals.
If your going to use an old processor, try Silicon Labs C8051Fxxx series. The can run up to 50MHz, and they also have free IDE, compiler (SDCC), and really low cost tools. Or buy the Coldfire V1 core processors (32-bit at 50MHz). And WAY cheaper than the Atmel processors.
I guess the real reaons that Arduino makes me hate it so is the people who are using it. They are SO IGNORANT! They think because they can make an LED blink on some stupid processor in which the tools have insulated them from reality, that they actually KNOW something.
Its like when I go to Frys Electronics and I overhear a couple of noobs talking tech REALLY LOUDLY, as if their miniscule knowledge is going to impress people. Yeah, people who use arduino are like that.
’nuff said!
Right on, Ray. If the psuedo-intellectuals in academia realized how outright silly they sound to anyone with any TIME in REAL WORLD engineering, perhaps they would not be so arrogant about their extremely limited ‘knowledge’. Most of the profs I’ve known (over many decades, and quite a few degrees) could not earn a penny in industry or any other work-for-pay environment not supported by the State.
This is why our kids get charged ridiculous tuition to learn nearly nothing.
IDE is FREE!!!! not a processor!!! they only cost $ 3-4!!! please read more about arduino before commenting
I build industrial process controls with the arduino. It’s the right tool for many jobs. I don’t need a 32 bit 50 mhz processor to do ph and temperature monitoring with pump controls on a chemical bath.
You don’t need a v12 jaguar to go grocery shopping, my lirttle 2.4 liter ford ranger is sufficient.
Try to open your mind a bit. your son will be fine. It’s a good intro.
@Steve … Your analogy is quite a bit off-base.
The funny thing is, the Coldfire V1 (and to a lesser extent, the SiLabs C8051Fxxx) are actually LOWER COST than the arduino’s Atmel processors. So it is like you are getting your V12 Jag for the same price as my 4-banger Honda FiT.
The clocks for these processors are all built-in and can be scaled up or down at run-time using their internal PLL to achieve whatever design goals you want. So, you can have your proverbial cake and eat it too. Scale the clock back for low power and then kick it up to 50MHz when you need to do some heavy computing. You don’t have that option with Arduino. Even if you think you will never need it, soon or later you invariably will.
It sounds like to me, sir, that you need to open your mind up to the entire array of processors that are out there and not get hung up on one vendor.
Anyway, the real point of my post is that it is both annoying and commical that people who have used only the arduino boards fancy themselves as being experts at embedded programming.
I have a diabetic cat that I have to give insulin shots to, twice a day. How do you think the MDs would feel if I hung around the hospital dispensing medical advice based on my vast knowledge of medicine acquired through treating my cat? Well, that is how I view the majority of people who use the arduino.
I don”t know you, or what your background is, so I cannot tell if you personally would annoy me. But I do know the bulk of the people (around a dozen) that I have been exposed to who use arduino are nowhere near my level of expertise, BUT THEY ACT AS IF THEY ARE.
BTW, it is my daughter who is going to eng. school.
I have 25 years in as a Network engineer, and a little more than that as an electronic tech. Been programming for 15+ and working with a variety of microcontrollers for 6 years. I don’t care if I annoy you or not, you don’t mean that much to me. I’m sure I can hold my own against you in process control.
Then why are you wasting so much time contriving ridiculous car analogies to try to defend the arduino? Do you own stock in Atmel or something?
The whole topic of the thread is “why do you hate arduino”. To that end, I have layed out my case logically and concisely.
BTW, a “network engineer” isn’t a real engineer, so you’ve already suceeded in annoying me.
Why is everyone getting so worked up about this?
Arduino is insanely quick to design with and there is hardly any learning curve so it’s perfect for getting students started in learning about micros. Does this mean they intend it to be used it for every application? I don’t think so… I’m sure in due course the students will learn when using a different micro would prove beneficial.
Understanding these trade off’s for time to learn, time to develop, overall costs, ect. are what make good engineers.
So what if your £100 product uses a micro that costs 50p more if what you benefit from it is half the development time.
At the end of the day if no one understands this, then all this thread achieves is showing who’s a fan boy and who’s a hater…
Raj… what do expect from a web page titled “Why do you hate the Arduino?”
The very title of the page is designed to be controversial. So, of course, differing opinions will inevitably lead to animousity.
After reviewing the data on the arduino website, I have no doubt I could slam out a brand new PCB design in under an hour with a better processor, have the boards on-order, and then have a program written and waiting to load in well under the time it takes to receive the PCB and parts. Which, by the way is about the same time it would take for them to ship me a finished arduino board.
And because I designed it, it would actually be easier to understand than the arduino board.
In my _personal_ opinion ATmega328 is much better than Coldfire V1. Why? ATmega328 can run in 20 MHz. Coldfire V1 run in absolute 0 Hz, simply because I can’t obtain it from my local stores.
Recently I wrote my own graphic library for TFT display. I need it compact and fast, and low level asm would be suitable for this kind of routine. It was really suck to write inline assembler in Arduino “language” (C/C++ using AVR GCC, actually). For that project, I switched back to my dear Notepad++ and write them purely in assembler with peace of mind (and guess what, ATmega328 is fast enough to handle the job).
But later, I need to make a simple web server with lot of string processing. Why would I bother to write lengthy assembler code while nano-seconds speed is not a necessity and the compiled code size is less than 32Kb, including the web ‘files’ embedded in progmem space? It took only 4 hours to make my prototype finished with Arduino plus it’s cheap Ethernet module. Most of the time were spent in optimizing javascript code within.
And hell, yeah, FPGA is lightning fast for DSP solution, which no Arduino (or any other embedded microprocessors) can match. For concurrent computing, especially ones that involve multi-dimensional matrixes, FPGA is heavenly blessing. Insisting on using Arduino for such task is ridiculously foolish.
I agree that Arduino-fanatic people are ignorant. On the other hand, the opposite (the Arduino-hater) is simply arrogant. Arduino (as integrated platform of hardware, software, and brainware) is an option from vast selection of resources. Use it conveniently as necessary.
Bravo!!!!!
I hate the arduino because people think that you have to do everything with it. Even Dave from eevblog has included and arduino on his Power Suply design.
In my university, student clubs teach new students how to use the arduino and how to build basic stuff with it. They get their heads stamped with the arduino seal. So, whenever you have a project new students inevitably ask “what arduino are you using?” WTF!!.
If that were all I would understand. But latter when you show your project to more experienced Arduino fan boys, all they can talk about is how doing it with an arduino would have been easier. Hey, wake up, an arduino won’t do this, the code would be so bloated it wouldn’t have fitted in the flash and it would cost twice more!!!
The target audience for the arduino are mostly artists and moms so why the hell are EE students worshiping it?!! it’s madness !!!
@ray white,
I don”t know you, or what your background is, but you already annoy me.
It’s often the case that people who boast about their level of expertise and how much knowledge they have actually know very litle.
I love the Arduino because it winds people up who think it is beneath their level of intelligence/expertise.
So true xD
Haha! As I said, Arduino is just for fun! take a bow!!
@Steve: One could build process controls using an ATtiny and deliver it cheaper that your Arduinos. Open your eyes, there much more.
cheaper than $5? at this price point, it doesn’t matter if it was free. It doesn’t affect the cost of the project significantly. I don’t need to “open my eyes” when what I have works so well for me.
This is one of the first posts on this blog. I put it up because I had been a writer at Hack a Day and I noticed so much hate for the Arduino. I’m surprised it’s getting so much attention the last few weeks.
you suck at
Multitasking multithreading
after your first blinky you move on to trying to run more of them at the same time.
brick wall…….bang you loose. The state machine sucks, and your only option is a commercial one so complicated. Sure if I was a professor of computer engineering at MIT no prob. but you guys forgot the target market hobbyists.I spent a year trying to figure out how to run them, and it never worked out right in the end waste of time. The IDE works for some on linux but for most it wont, and you get stupid answers like your crazy works for me.I bought a netduino never tried C# b4 within a few hours had 16 things multitasking. More memory more speed 32bits not 8 runs so much more useful things like just did one on VB and cheaper. You guys are like the old man on the block stuck in your ways afraid of new things and dying off.
@Peter
How do you then transfer your AT91SAM7X512 chip to a standalone project?
I give up… not much has changed in tech this century. I have a Board of Education by Parallax (15 years old) that is easier to use and will do more than the arduino uno (ohno). Too much syntax to do simple task. I tried to make something useful like the caliper data reader… very disappointed… No decimal point, will not read metric, freaks out and goes to zero after four inches, will not provide entries to excel… I really needed this to work to go along with my spc analysis in excel… data to pencil to computer… means mre work but it is better than getting a headache trying to make processors do things they want. Its weird; all the fancy equipment in my work has to be taken from a proprietary printout and entered into Excel spc analysis… Will check back in to this in five years… maybe by then Mitutoyo will come down from there high horse price tag for caliper spc data…
Arduino is to Electronics Design, what Etch a Sketch is to art.
Well put Dan… you are correct. The Arduino is nothing but a toy. Used mostly by people who want to play pretend about being a real engineer.
You are full of crap. I get paid well to design commercial process controls using an arduino. And I’ve been a engineer for close to 30 years.
You, Steve, are an idiot, an amateur, and you live in utter disregard of the most elementary rules of hygiene.
I’ve been through my fair share of non Arduino devices from various manufacturers. Let’s face it, when you pick a device, you spent hours learning how to use the IDE. Then even more time figuring out how to use the manufacturer provided libraries. Some of which, didn’t correspond because there can be several versions by various 3rd parties that differ from device to device. If you decide to try another brand of part, you have to do all this unnecessary work again when you could be coding….
Arduino is unified in this respect. Anything made for an Arduino supported part, will work on another Arduino supported part with minimal messing around as long as the hardware is the same ( I believe they are looking to expand onto other brands of parts now that they support ARM). I don’t understand why in this day and age, microcontrollers still have to be so complicated to just set up. Why do you have to go searching for four or five memory locations just to enable some peripheral. It could be easier with modern tools that do this stuff for you depending on the device used!
I want to write code for a device by some manufacture and be able to port it directly to an equivalent device from another manufacturer. This isn’t hard any more, it’s 2013 for goodness sake, hardware has advanced but the damn programming tools haven’t.
I believe Arduino is trying to change this, and to anyone who say’s it’s a toy, just open your eyes. It’s popular for a reason. It just freaking works! You can pick up a board for cheap, program your application with little effort and it will just work. Roll your final hardware and you’re done! The small saving you could make on the BOM with another part will be outweighed by the time you put in to get your project done. Sure, some may say, “if im making 1m units, i’ll save big $$$”, in which case you’re reading the wrong thread and should be able to figure out what’s cost effective and what isn’t :P.
To reiterate because I feel I have to. Arduino works and works well! It’s quick to develop. No one’s going to see your code once it’s in your product, deal with it!!
You know what, I’m torn. I’m an electronic engineer and designer (proper degrees in both) with experience in a variety of fields – some analogue, some digital, some programming (embedded and GUI), some other bits and pieces that are pretty niche and may never come in handy again.
People have already identified that cost is a negative to the Arduino – which is true at volume. But for getting a simple job done fast (like Steve’s process controllers) the one-off cost isn’t that important. I say good for Steve – making a living is no mean feat.
Making a 250k unit order with Mega328s isn’t smart either – again people have pointed out that you can get some great ARM MCUs for under a dollar in bulk these days.
What I really love about the Arduino bootloader is it means that if I develop something for a client I can have them understand the firmware running on it and it gives them the confidence to play with that. This gives them greater ownership of what I create for them and makes for a more open and balanced working relationship. They feel at ease if it’s Arduino compatible and for the majority of things people come to me for that will do. Naturally I’m not doing high speed video compression on the fly here.
Take a look at this for something achieved with an Arduino compatible board. To be clear, the board isn’t mine, I specified it from my client’s wishes and project managed the electronics side of this. Mike Harrison put the board together.
The great thing is that my client had full control over what everything did. If they didn’t like it, they could change it. They could create directly with it, without me needing to be involved at every stage. They could make mistakes. They could actually use it as a medium, just like film or paint.
In this sense Arduino democratises creating strange things with electronics. People who wouldn’t normally feel confident enough to get involved might be tempted. And they bring new ideas to the table – that is the source of innovation. Sure they might ask seemingly daft questions in forums, but haven’t we all had a lot of help from patient kind people in getting where we are? Lowering the barrier to entry in this way is effectively broadening the gene pool – if we don’t, we run the risk of inbred thinking.
And what do I hate about Arduino? The fact that it attracts such vile bickering out of so many people. Why can’t we be happy for the choice that is out there? Nobody forces you to use an Arduino any more than they make you eat your broccoli (assuming you don’t still live with your parents…). If it makes someone happy to blink an LED with an Arduino and they feel that they had some hand in that process, what harm does it do?
Sorry for the long ramble – I just wanted to say my piece.
btw, my embedded arduino’s cost me about $5, so cost is not an issue. All an arduino has to be is a $3 atmel chip with the arduino bootloader, a crystal, and two caps.
That’s true Steve – I can’t see why people are giving you a hard time! The only reason I mention the cost is that I recently had a project come my way (which I turned down) which was so cost sensitive that $3 for the MCU would have blown my budget and 328 wouldn’t have had the grunt (volumes were insane too). So sometimes Arduino isn’t the right way – but then we knew that already.
One more thing – there is a second link to the isthis.gd website with a bit more on the process of creating the piece, for those interested. link
I know nothing about computer coding and a little about electronics. I have just made a load cell amplifier, used it to controll a H bridge driving a conveyor. It has automated my production line. I used an arduino! I am a complete amateur! I love it!!! Saved me thousands
“So, of course, differing opinions will inevitably lead to animousity.” -ray white
1. ‘animosity’
2. False premise.
You’re probably a troll IRL too, Mr. Hygiene. Notice that the comments here weren’t ad hominem until you showed up.
It takes two to tango, my friend…. just because you are an arduino-loving noob, don’t try to pin it all on me… Now go read the title of the blog again.
Silly ray, the title is about animosity towards the _arduino_, not fellow humans.
People can have different opinions and still get along. Its a great skill other people will appreciate.
Admit it, using an Arduino is like plinking chopsticks on a keyboard and then trying to equate yourself with a professional pianist.
Oh, but you won’t admit it, even though a part of getting along is the ability to admit when you’re wrong instead of stubbornly sticking to your guns until everyone is disgusted.
Maybe it’s just me, but I just don’t get the Arduino. TO me it seems like it’s just a breakout board with a crappy little old micro on it. I’d much rather be designing and developing with an breakout board that has a modern 32 bit RISC processor and with modern peripherals on it like an STM32 Cortex-M with floating point processor, or some such…oh wait, actually I am…
Seems to me that for novel/new applications that don’t require an intense understanding of embedded systems hardware or software architecture, the arduino is a quick and easy way to get something together in a rapid way that would allow for some market feedback.
That’s where I am. I’m a EE but have gotten far away from the embedded or mixed signal world. My return journey might entail bumbling around a bit, but I’m envisioning a product that is not overly complicated. Just need something to show, and I’m planning on using arduino to show it.
I LOVE ARDUINOOOOOOOO
I’m a retired engineer.
I have no deadlines or price-points, or marketing dweebs breathing down my neck.
I don’t have to crank out 100k units yesterday. So I looking at this from
as casual coder perspective.
It’s not that we should hate or not hate the Arduino 8 bit. It was a good idea(at the time) to get
non-techies interested in physical computing. That’s a good thing.
The Arduino(authentic and clone)8 bit boards are overpriced and obsolete by now.
If anything we should be pissed off at the Arduino designers for not going 32 bit sooner!
The people at Arduino Central in their infinite wisdom finally came out with the Due in 2012.
It’s about flipping time!
There isn’t a lot of support for the Due yet, but at about $38.00USD for a clone Due, it looks like
a fair deal for 32 bit proto/concept stuff. But it all depends how many Arduino fanboys will drop the money for the board and write libraries for it to make it an easy transition for casual users to move from 8 to 32 bits
I use PIC32MX stuff now, I’m fine as long as I write in C, but learning MIPS assembler
is not for me. ARM assembler makes more sense to me, but then I cut my teeth on the 6809
and the 6502 processors. God I feel old ;~(
It does bother me that people now in college going for their BSEE are being taught
with 8 bit architectures. If I were teaching I would start with 32 bit MCUs and FPGAs right out of the gate. Why screw around with 8 bit, when most of the real world is using 32bit MCUs, DSPs,
and Soft Processing?
Arduino the biggest waste of programming effort I have ever experienced.`
On thing I can always count on with Arduino random crashes and random variables being cleared.
*String leaks and sucks and since when do you not want the null character when copying a string?
*Serial sucks redirect stdout to a TCP socket oh wait what stdout.
*Ethernet is guaranteed to lock unless it isn’t used you just never know when client code will work.
*Different TCP/IP libraries for Wired/Wireless/GSM network connectivity nice bloat there
*Wasted FLASH code with Libraries
*Wasted RAM with Libraries
*How many different Macros are there for placing data in Program Memory?
*I wont even start with the IDE I gave up on it from the start.
*The hardware oh how wonderful if I use one shield I need to bend pins and jumper connections to use it with another? Didn’t the same group design them all?
*Can there be any harder ways to tell what pins are used? How about making the Silk Screen say “Used” or something
*Now we have a 3.3V 5V issue with the Due. Nice!!!
*Watchdog timer “You must be writing your code wrong”!!!! Microsoft philosophy 101!!!
*Maybe bootloader XXX will fix that. What version bootloader do you have? How the hell would I know?
Debugging just use that buggy serial port code to output crap messages that are hard to format take up way too much CPU and may be the cause of the bug in the first place.
The only platform that can fail blinking an LED its so bad the open source community cant fix it!
Im sure there are 100 you should have tried this or your doing this wrong for the above list.
My answer is I don’t have to worry about a fraction of the problems in other development environments. And if I have an issue its much easier to debug and fix my own code than that of a library that will be replaced along with all my bug fixes.
The standard answer in the Arduino forum looking for possible solutions. “Didn’t you search that first” Nice thanks for telling me you don’t know the answer either. No I just asked a question hoping you would write my code for me because I really want more of the same crap code contained in the libraries in my program.
I recently came across the STM32F4 discovery board. Farnell stock it for £10.64 in the UK. Way cheaper than arduino. These are the specs:
– Cortex M4 processor with FPU
– Up to 180MHz CPU speed
– 1MB flash
– 192KB ram
– 3.3V powered with 5V tolerant pins
Already you can see this kicks ass compared to the Arduino Due (which doesn’t even have full support yet).
I’ve been using CooCox CooIDE (free software) to program the chip. Seems quite straight forward after watching some tutorials on youtube. CooIDE has loads of examples.
I had a really good run with arduino but recently the bootloader has been pissing me off due to crashing when you try to do funky things. Arduino macros become useless once you start changing timer and port settings. As a result, I find that Arduino limits the functionality of the chip because there’s a lot of peripherals that aren’t supported with Arduino macros.
Oh and JTAG support. Love to see what’s going on in the chip while its running.
The board comes with built in JTAG, accelerometer, mems microphone, USB host and audio DAC as well as ALL the pins broken out
Don’t think I’ll buy an arduino again. These 32bit chips are the same price these days and the dev boards are dirt cheap!
Finally someone else “gets it”…. good post Raj!
Once you hit that wall of “oh shit, my arduino program is too slow” it’s a real eye opener.
.. also I know I have a history of *I love arduino* up there in the comments but that was a long time ago. I think arduino dev has slowed down and isn’t as exciting as it once was. The main thing for me is that the Arduino Due was a massive disappointment. It’s badly supported and things still aren’t being fixed. I2C library is broken for example.
Arduino is a good first pass to learn how to play with microcontrollers but you sacrifice so much functionality and performance. I wish they expand their part support to other manufacturers and even get proper ARM cortex support. Until then, I don’t see them going anywhere in terms of new products.
The Due was a total screw up IMO, a stupid design in the name of 100% compatibility which of course it can never have anyway. And now there are so many other fantastic boards out it will never catch up I think.
They are about to release an Intel board which looks the business, I think people will just skip the Due, too little too late.
i just dont like one thing about arduino false claim of creating a project . the person would just not know to write any coding language but just he can copy past things he can say i made it .well its completely wrong.and the person who deserve credit dont get it.
The problem is it uses C for programing, even worse it uses a bastardized version called ardino.
So after the 1st blinky , you want more, well your out of luck jack.
No native support for multitasking multithreading
Oh sure you could set up state machine or some other impractical trick to get it done.
Or even use some totally complicated commercial software that’s really not supported by arduino
Or how about that RTOS what a nightmare that is for a new programer.
When you could be using something like a Fez that uses C# or visual Basic, true multitasking multithreading with a play by play debugger, and an IDE light years ahead.If you need help well these languages are the 1 one used out there, not the arduino
There is no “bastardised version” of C, it’s simply a collection of libraries, often not well written I grant but Arduino is strictly C/C++.
C/C++ is just the right level for a lot of projects, low-level embedded projects neither need an complex framework/OS nor can tolerate the latencies that come with them and until recently the CPUs used by Arduino didn’t have the grunt anyway.
The Arduino “IDE” is crap, everyone knows that, so use AS, VS, Netbeans or Eclipse etc.
If “latencies: was truly a concern, then you wouldn’t use the arduino.
My arduino runs 8bits, my netduino runs 32bits @ 168mhz with way more ram for the same price.
“C/C++ is just the right level for a lot of projects”. Maybe, but any project can benefit from a play by play debugger, and not to mention all the extras C# or Visual basic offers you.
“complex framework/OS” are you for real, what can be easier then to program in visual basic .
Its true it takes up a little more room on the board (no big deal these days) but if this was your pressing concern then dump C and load in machine language, get back to the metal and knock yourself out.
No sane person would do that.
By “complex framework/OS” I mean complex under the hood, they are easy for the user of course.
It’s a matter of horses for courses, VB.NET is great, I use it all the time, but I can’t do sub-microsecond-accurate timing with it, for that I need assembler (or even hardware). Most embedded real-time projects are somewhere in the middle. How do you detect a rising edge on a pin and set another pin within 500nS using VB? Then repeat the process every 2uS indefinitely. If it can be done in VB or C# I’d like to know how. And a debugger is of absolutely no use at these speeds because they are too intrusive.
You use the tool that’s appropriate for the job, and an 8-bit CPU with C/C++ is appropriate for many jobs. Some jobs (like one I’m currently working on) only need and have room for an 8-pin chip, how will you do that on a platform running VB?
That said I’m more inclined to use an LPC 32-bitter these days and I believe that style of CPU will take over from chips like the AVRs before too long. They are also available in small packages, right down to 8 pins.
And full ICE debugging is available for most of these chips although people using Arduinos seem happy with printf-debugging, go figure. $30 for the hardware and $0 for the full Eclipse-based IDE and debugger will get you started with an LPC 32-bit processor, the only down side is lack of 5v support but that’s becoming less and less important as well.
So, you cannot say “use C# and VB for everything” any more than I can say “use C++ for everything” they are totally different animals. You use what’s appropriate for the job at hand.
You can get a Atmega328 or ATmega32u4 board(arduini mini and pro micro) for around $4 to $7 on ebay. Arduino is intended for artists, designers, hobbyist. Now since there is a big demand for this we can get cheap Chinese clones. It not necessary to use the Arduino like a Arduino. I’ve used a Arduino to debrick my routers it a very hacker friendly tool. If I have to build a project that require a Atmega328 I’ll simply but a Arduino clone because its cheap. I can then program it in assembly if I want to.
Well I have Arduino’s because they created a generation of copy/paste programmers.
I hate Arduino’s because they created a generation of copy/paste programmers.
In my point of view Arduino is good for non-technical audience and not recommended for any electronic or CS student/professional.
I think most of the Arduino users may not seen the real beauty of microcontrollers, digital electronics and low level programming languages… :(
I use Arduino as a platform in my introduction to Mechatronics classes. So saying that Arduino is only good for non-technical audience is completely wrong. Please keep in mind that it was developed at a university. It is an ideal platform to learn programming logic, and apply to electronics projects. It gives students a huge boost in confidence in dealing with microcontrollers to control real-world systems, and I don’t know a single student who does not go on to experiment with the libraries to modify the drivers etc. or to use another bare-bones system to do embedded development. In fact, with the new Arduino Due, you can even do sort of multi-tasking by writing multiple loops. I do teaching only as an a adjunct, and work at a multi-national. Though I’d say that I’m not brave enough to use Arduino in my products, I use it often enough in making test rigs for my embedded systems. In fact, I just moved my TI DSP based hardware-in-the-loop simulator to Arduino Due. All I had to do was to make an 8-channel SPI DAC shield, and the platform was ready to use. So if you say that using Arduino moves the effort entirely from hardware to software, I’d tend to disagree. It just cuts the effort in less than half, which I won’t complain about at all.
I’m not going to fight my way through the comments to win a free BusPirate. Instead I’m going to purchase it and call it a day. I’ll be walking the plank before you know it
Ha, I didn’t even know there was a prize, but given that this thread started over 4 years ago I guess it’s long gone.
So 2009. We need a new contest for the most trivial use of a Raspberry Pi.
I’m a university student and currently the faculty members of our university are planning to ban arduino from the final year projects! I’ve been debating with the teachers on how powerful it is! But they say it is too easy and the students will not get the actual concepts on how uC work. They say that even a peraon without any electrical engg knowledge can start making projects and stuff using arduino And they don’t like that!
Haha.. that why i love arduino because i’m in mechanical field. Arduino helps me a lot to lower down the barrier of Electronics and Programming. Now i can build my CNC machine quickly without asking EE to to the electrical part!!!!
As with anything it’s the haters that make noise. Most people that use it don’t usually bother writing much about it.
It’s high cost for a production platform, but it’s an excellent way to grab some parts and go from idea to working prototype in minutes or hours before you go design custom hardware. Or a nice way to give your PC a permanent set of in/out pins at your desk that are “always available” to test components.
I am an RF Engineer without much programming experience. I needed something easy when it came to programming my ideas into micros. Arduino let me get into it and then build a business around it. I couldnt be more thankful!!!
Best Regards,
David Goins
Windfreak Technologies, LLC.
CTO
http://www.windfreaktech.com/
I hate it because every related thing ends in “duino” or “ino” like gayino? or fartino?
If you remember John Travolta in the TV show “Welcome Back Kotter” you can make a wine dispenser.
Call it the “Vinnie” BarbarIno
like Idris i am a mechanical engineer.
The Arduino has opened up a lot of avenues in business for me.i am no longer held hostage by electronics companies who charge me a hundred and plenty for simple electronic controls.those same people who then charge me a lot more when something needs to be re programmed.
why should i pay for fancy siemens plc’s when the Arduino tells me when a part is in position,and if something changes i can plug my laptop in and sort it out myself.
I agree with Alex. I am nuclear engineer and over the years I’ve used arduino in several projects most of them I placed in the a nuclear power plant in Fukushima. Everything works as expected.
Safeduino
and another little project with the Arduino.
my BECM on my rover decided it didnt want to control the air suspension…so an Arduino Uno now controls the pressurising of the the air bags.and a snap on Lcd shield shows me the height settings on my dashboard…i could never have done that mod without help from the Arduino community.
i am not sure how to take the Fukishima comment!
Fukishima talk about Dangerous Prototypes!
I’m self teaching myself 8-bit micro-controllers.I wanted to learn the 8051 derivatives in C-Programming. There are only a few 8051 IDEs suppliers. Keil and IAR Systems. Their IDEs cost about $2000. Too expensive! Their demo software is too restrictive. SDCC was too non-standard. I just like thousands of other newbies searching for an affordable embedded solution purchased an Arduino UNO. It’s perfect for me. Inexpensive, built-in examples, many third party add-on, open-source, etc. The 8051 platform is dead or dieing due to limited options.
I’m self teaching myself 8-bit micro-controllers.I wanted to learn the 8051 derivatives in C-Programming. There are only a few 8051 IDEs suppliers. Keil and IAR Systems. Their IDEs cost about $2000. Too expensive! Their demo software is too restrictive. SDCC was too non-standard. I just like thousands of other newbies searching for an affordable embedded solution purchased an Arduino UNO. It’s perfect for me. Inexpensive, built-in examples, many third party add-on, open-source, etc. The 8051 platform is dead or dieing due to limited options, limited and high cost IDEs.
The 8051 is not “dead or dying”…. The SiLabs IDE is free, the SDCC compiler is free and integrates fine into the IDE, The usb-based debug tool is $35. What, exactly, do you think is too “non standard” about SDCC?
The 8051 may not be exciting but it still has a niche and it has plenty of support. To be sure, some of the low-end ARM processor like Freescale’s KL05 are probably worth a look.
A lot of people are becoming too reliant upon IDEs. All an IDE does is push commands to a compiler (which are usually available for free). You can see EXACTLY what’s happening here by reading the output if the console window in the IDE. Infact if you copy pasted that information into a command prompt, your code would compile and upload all the same.
Truth is, you can use any IDE to develop with, Eclipse for example. The reason these big expensive IDEs sell, is that they come preconfigured and look fancy. I personally don’t like them because you’re never sure how things are working. It ends up taking ages to find some compiler setting in all the menus when you could have just typed the option in a script/batch file!
Arduino doesn’t really count as an IDE, there’s no real debugging or code completion. Serial output is not a useful debug tool, you need to see registers and variables.
I personally like to use a plain ol code editor like Sublime text or notepad++. I have a tiny batch script for each of my devices that i can run from inside sublime text. In one keystroke, it compiles, uploads, and starts a debug console. If i want to change device halfway though the project, all i need is the right memory map file and to change the device name in the batch script. Simple!
Honestly, once you get up that initial learning curve, you can become really productive. Give it a go with the Arduino board, it’s a great way to learn, and once you can do it for one device, you can do it for any device from any brand
I recommend you to start with newer micros, 16bit and 32bit are the most common and are almost equally expensive as 8bit ones. I’ve used Renesas, they have demo kits:
http://www.renesas.com/products/tools/introductory_evaluation_tools/renesas_demo_kits/index.jsp
Also you can try Microchip’s technology, yet cheaper than renesas.
Microchip and renesas have their own free IDEs
Hope this will help
Why do I hate the Arduino? Let’s see…how much time ya got?
Arduino creates a false perception within n00bs who wanna bypass the learning curve that they’ve somehow become embedded engineers overnight. Problem is if it ain’t built with an Arduino board, the’re like a deer in the headlights. Give a n00b a breadboard, a few small components, and either a PICmicro, an AVR or a good ol’ steam engine 8051, and they’re completely lost. Moreover, whatever limited knowledge they gained from Arduino and its associated language known as wiring, does NOT carry over to the embedded device field.
Some state “Arduino is a great way to learn”, but as abstract as it makes everything and the fact that it uses its own programming language, what are they really learning? All their learning at that point is the Arduino itself. They are NOT learning anything about the general embedded electronics field. They’re only learning a platform.
Now…get going on PIC/AVR/8051 and now you’re learning some stuff. Plus, with PIC/AVR/8051, you deal with C language, and C language carries over to other programmable computerized devices. When I started with PIC, I learned Microchip assembly and that became my primary language. Fast forward 8 months down the road, I was able to take what I learned about MPASM, apply it to the Intel 8051, and with minimal studying I was able to also assembly code 8051’s. I’ve also written C for 8051 and just recently stepped up to the 18F series of PIC’s, and I now have about 3/4 different types of 18F PIC’s.
Arduino cannot teach you that. You’re only learning a platform with Arduino. You’re learning nothing about general embedded electronics.
Awesome post!
Jon Wilder:
Arduino code is also C: http://arduino.cc/en/Hacking/BuildProcess
Jon Wilder:
Arduino code is also C: http://arduino.cc/en/Hacking/BuildProcess
sounds like http://dangerousprototypes.com/2009/08/27/why-do-you-hate-the-arduino/#comment-34993 but IDK about the people you’ve dealt with *shrug*
Arduino is gay and a pussy way out. hahaa.
But seriously… simplified coding means – there are much stuff done behind your back – less control of your device, timings, interrupts and stuff.
So if you want to fit a advanced solution on a small piece of hardware, like ATTINY, then C is the way to go.
this Piece of shit sucks ass. I shouldn’t have to download other software besides arduino to get a simple key release function to work , especially software (processing) that doesn’t work to begin with .
that’s not learning code for arduino, that’s arduino being extremely limited. HERE ,BUILD A ROBOT BUT DONT USE OUR SOFTWARE , CAUSE IT CANT DO ANYTHING BEYOND TURNING A FEW MOTORS AND LIGHTING AN LED.
“So if you want to fit a advanced solution on a small piece of hardware, like ATTINY, then C is the way to go.”
What a load of horse do do…..
If you want to go back to the metal, then you would need to program it in machine language, not C
No one in their right mind would do that, as its way too hard.
C takes you away from the metal, but not far enough to be useful or practical. How do you do things like multi-task or multi-thread it cant be done. Why would you want to go and spend hours, months , years on a project and get to a point, that you realize it cant be done with C, or the crap hardware cant do it either.(It happened to me, and many others) Hardware is cheep, and getting cheaper, I spent a year on a project, and found it couldn’t be done on a arduino. I switched to a netduino more power more speed cheaper and user friendly C# I had 22 things multitasking and threading in no time flat. You guys owe me my wasted year!!!!!
“If you want to go back to the metal, then you would need to program it in machine language, not C
No one in their right mind would do that, as its way too hard.”
I guess by your standard, I’m not in my right mind.
http://nerdralph.blogspot.ca/2014/02/picoboot-beta1-release.html
http://nerdralph.blogspot.ca/2013/12/writing-avr-assembler-code-with-arduino.html
It sounds like your problem was not using the right tool for the job. If you need multitasking and a web interface then an 8-bit AVR is a bad choice. If you’re making a greenhouse ventilation controller that needs to monitor temperature and humidity, then an AVR is great.
Seems to be a lot of ‘duino-hate in the comments, interspersed with some sanity – e.g. Nerd Ralph. Face it – not everyone is going to build their own metal lathe or CNC/3D printer, either.
The Arduino gives those who don’t have the time, background skills or ability to master embedded systems design/programming the ability to add automation to their projects.
Some of the negative comments seem to be from those who feel the ‘duino community is stealing some of their embedded systems “cachet”.
I feel there is more reason to detest those who crib insecure code and embed it in their site without realizing the risk to viewers/customers, and without thorough “adversarial testing”. Now, THAT ought to be a crime!
>FPGAs will rule the world!!!
Yea, except not. Because o don’t see and free (as in GNU, FSF free) softare tools to program FPGA’s.
The first time I saw a chipKIT board with PIC32 refresh a graphic display and it “blinked”, the arduino ship sunk.Fast 32 bit boards with moar RAM are same price or less than arduinos. NXP has a STM32 based developer board with built in CAN controller and transceivers for under $20! Actually, they have a lot of different slender dev boards for under $20.
I use the “dweeny” boards laying around for initial proof of concept. Then if I add a display, we’re going with chipKIT or NXP so I don’t have to watch the curtain fall pixel by pixel as the AVR struggles to pump out the SPI.
For reselling process controls, if you can get away with something standardized and/or “dumb” like the arduino uno or mega, that’s the way to go! Like the company that does custom printing press controls. Need an update? “Here’s your box of arduinos, swap em out”.
Arduino gives one instant access to a destination, i.e. a completed gizmo. But I chose this hobby for the journey, not the destination. That is why I hate Arduino – it destroys the very thing that I love about embedded electronics.
Awesome post! The journey and what you find along the way is the most fun part of embedded electronics. Every time I complete a project, I feel empty like “OK…now what?” lol. But the steps I take along the way of designing and building…everything from the hardware to the firmware to the PCB design process…that’s what makes it all the most fun.
Arduino, at least for me, defeats this purpose entirely.
Agreed. I mean, why even bother if you’re skipping the fun part?
Arduino users remind me of the IT guy at work. To the layman, he is an absolute genius. Remove him from the top level of a Windows operating system, however, and he’s like a lost puppy. The sum total of his expertise is his ability to work within someone else’s product(s). Remove him from that bubble and he’s useless.
And I noticed a few posts above about Arduino being “cheaper”??? Cheaper how??? MCU samples are free, and programmers are cheap – the most expensive one i own is an avr dragon i got for $15 on ebay. IDEs are free… And datasheets are even more free. What else do you need? And in turn for saving money, you gain precious freedom. You can hack damn near any sensor, IC, bit of hardware, etc. there is without relying on “open source solutions” or “support communities” (i.e., copy/pasting other people’s code).
It’s like listening to a Lego enthusiast preach the merits of Legos to a guy who machines his own metal parts on a cnc lathe.
Cheaper? Yeah… This is my favorite link of all time. I’m still trying to figure out how to harness the awesome power of the $4 PSoC 4200 with built in configurable op-amps, 40MHz, and twice anything arduino ever dreamed of.
Four dollars
For another $5, you also get a CAN controller and 80MHz.
i`m working in uc development and i tell you something the arduino is far more better than pic, freescale
tms320, infineon c166 fpga nxp
Pfffttt! Baaahaahaaa! Good joke, very funny!
uc development == [u]seless rap development? ;)
lol… the comment system eats “[ c ]”… hehe…
Great points! A bad worker always blames his tools. I’ll bet most Arduino critics are half as old & half as smart as the Arduino UNO I started as a Sysop on the S360, S36 & DEC’s with card readers. The RAM. & capabilities of those machines didn’t stop us from writing our own x-compilers ( with line numbers) OS’s, boot loaders etc. look up what the original IBM PC had to work with. You CAN write simple ballistic rocketry programs & graphically display data gathered from old EPROMS & PIC’s. Guess what VOX Hawking used for years. We setup phonetic voice rec I the early 80’s. the Arduino? Lookshery!
In short, the Arduino is a great environment to learn on this Brit says . Bravo Italian! Boo Donald “Trumph” opportunists. My hat’s off those that still find innovation in this cheap fun tool. If you don’t like the competition or the affordability, shut up & say something positive about what you think is a better platform. Yay Arduino!
Uh, oh! I had much fun reading those comments!
I am an engineer with experience in C/C++, some assembly, Linux etc. I started some 15 years ago with a PIC on a breadboard and the Microchip Windows IDE…
Since a few years I use AVRs to do this or that, some hobby, some pro work. I came to AVR because my employer had some in stock. Time for my first blinking LED on a STK600 was approx. 12 minutes using avr-gcc and emacs. It’s all so easy to use! Already good for kids to learn.
And then there came Arduino…. I hate IDEs in general, but that… ok… The idea to make it easier to begin with uc programming sounds good. But why the hell do they lock out people from learning the real thing? As some people in this discussion already mentioned: If one Arduino can’t do the job, take some more. There’s nothing than Arduino…
If you want to go deeper (through the Arduino layers) you encounter much bloated and (for a beginner) rather complicated stuff. As long as you stick with Arduino, it all gets more complicated and difficult to learn. So you stay at the surface -> no real learning.
An open source vendor lock-in – chapeau!
I still thing that an AVR platform is nice for learning some basics. Why don’t the kids learn using real microprocessors? The code won’t be that portable, but the knowledge. If you have learned about basic programming, registers, interrupts, memory spaces, pin drivers, understanding peripheral docs, you can easily step up to the next bigger thing, if you need it. But the way is clear. There’s no stupid Arduino world in which you are locked…!
I have just unwrapped my first Arduino nano because I want to do some breadboard stuff. I use it as a little AVR board with bootloader, and it works great. But when it comes to make real hardware, I just paste an AVR onto the board. Or a little FPGA. Or CPLD.
People spending their time in universities programming Arduino… Phantastic! That makes sure I will keep my job!
Keep in mind: Having cluttered together some Arduino programs from the www does not make you an engineer.
Starting off with a small AVR board, a text editor (like emacs or vi, IDEs are overkill), avr-gcc, a makefile from the www (just for the beginning, you should learn to write your own makefiles, of course!), and your AVR’s hardware PDF is a first step to become one of those who know a bit more. If you are unable to program at all, learn a bit C first. Don’t care about people laughing at you because you need more time to blink the first LED. You are on your way to blink every LED and get every UART running while they’re still proud of their “skill” to blink an LED on an Arduino.
:-)
And to think, the crippled Arduino platform were started by academics, and now they seem perfectly happy to bask in the glow and adulation, rather than to move people to proper firmware programming. So rather than teach properly, they have embraced the religion model, they are the popes and they are happy with the adulation of all the sheeple. Okay, harsh, but it’s only a middling rant…
Truth is sometimes harsh.
Phil, nicely put. That is very similar to my view on the subject, only substitute 15 years for 35 year, and substitute AVR for a number of other 8/16/32 uC. Nothing against AVR, just never had opportunity to touch them much. –Mike
I have being reading about the pic microcontrollers and i have been doing some little projects with it. So I thought of venturing into a programme that offers training in pic in order to learn it faster, atleast so I thought ! They work on Arduino. In my country your options on things like this are not widespread. So I’m kind of in a dilemma here. I have developed this mentality pic users have. here is my reason, permit me, I dont like the whole idea of the avr on a board thing and i like the fact that for small projects you use small pics and vice versa or maybe its because i really dont like the idea of learning something allover again with a different method.
I agree Phil. I’ll say it again, I have nothing against Arduino for people who aren’t actually interested in embedded programming and simply need it to complete some sort of project. My problem is with the “electronics hobbyist” who use Arduinos and believe they actually know something as a result. Or worse yet, the ones who go out of their way to convince others that they actually know something. It would be like buying a particle board bookshelf at Walmart, assembling the pieces per the instructions, and then calling yourself a carpenter once the project is complete.
Hella overpriced. Same price range as a Raspberry Pi and more expensive than some boards that can run Linux, yet the computing is extremely anemic. 2KB of RAM and 1KB of ROM? Come on. That’d be nothing even in the 80’s.
The language is sort of okay. The IDE is easy to use. Meh. Not really worth it IMO.
If it was, say, 64kB of RAM and some sort of permanent storage, maybe 1MB, with unlimited write cycles, it’d be so so much better,
I know about the EEPROM but it sucks.
I don’t get people who say Arduino is expensive/overpriced/etc. Yes, I know “original” Genuino costs a lot, but if you buy it, you basically donate most of your money to the seller, because Arduino itself costs very little. Arduino Mini Pro cost is just $1.4 including international shipping (at least, on eBay where I buy most of my electronic parts). Sure, there are more expensive versions such as Arduino Mega 2560 which currently costs $7.62 with international shipping, but for many projects Mini Pro is enough and since it costs so little I can just leave it in my project permanently and buy new one for next project instead of developing and making my own PCB each time. Not because I’m lazy but because this is cost effective and quick, despite what most Arduino haters say. After all, custom PCB is expensive no matter what: first, I need to design it, and I think my working time should be worth at least few bucks per hour, it would make no sense to work for less. The fact I’m spending this time to work on my own projects and nobody actually paying me for that, changes nothing – work is still work, while I design my own PCB I cannot simultaneously take a nap or spend quality time with my family members, and of course I cannot do any freelance work either while working on my own project. I have no problem designing custom PCB when it really necessary, but for a project where Arduino with few additional components and wires is enough, designing custom PCB is not cost effective solution. Perhaps it could have some educational value in the beginning for some people, but that’s it.
I’m not Arduino fanboy, though. Arduino has many drawbacks, especially if we talk about not just Arduino the PCB with microcontroller but its IDE, community and libraries. For example, on ARM basic blinking program will take about 22 KB because of piles of useless stuff in the libraries. So on small ARM microcontrollers Arduino libraries are not an option. And they are not very good for small AVR either, such as ATmega8. Even with 32KiB in Mini Pro I sometimes encounter a need to optimize some libraries by removing dependency on standard Arduino libraries because I ran out of space for no good reason. However, one time I ran out of space on Mini Pro and optimizing farther was not possible, so I migrated my project to ATmega64 soldered on TQFP32/64/100 to DIP adapter. Since ATmega64 comes in TQFP64 package, and adapter had 100 holes, I had some space to make convenient ICSP connector so I could upload code to it easily, and I used Arduino Mega as programmer. There was no reason to make custom PCB in that case because the project needed just some sensors, 2.4GHz transceiver, relays and LCD, and all of them could be connected with wires with few additional parts. So, Arduino can be useful as development board even if I end up using microcontroller not used in Arduino boards.
That all may sound good but there some issues in Arduino community I would like to mention. First of all, Arduino IDE not only hides many things from its users but also comes with libraries which are very poorly optimized if at all. Sure, they keep everything simple for newbie in basic projects, but I think it could be possible to do this without hiding anything (for example, by providing good default templates, showing all compiler options and settings in the preferences, etc.) and standard libraries could be much better optimized. I could write a lot about this topic, but this comment already became too long, so I just say that I think that Arduino IDE and most people in Arduino community set bad example for newbies – in cases when it could be possible to write well optimized program roughly of same or smaller text size and much smaller memory footprint, most people who use Arduino write something bulky and ugly instead (including Arduino developers) and newbies follow the example. Because of this, people who learned only Arduino IDE will have hard time without it, or without standard Arduino libraries. The latter could be non-issue if they were well optimized, but they are not. I could understand this if Arduino encouraged use of something like ChibiOS – may be too bulky for blinking LEDs, but useful and well optimized library nonetheless. Instead, people who learned to use Arduino IDE produce programs about as bulky as when using OS (and sometimes ever bulkier), but have trouble blinking LEDs without delay and invent numerous workarounds to schedule parallel tasks, usually by using one more bulky Arduino library. I’m not saying OS is needed for most AVR projects, it is not. In fact in many cases emulating parallel tasks can be done without OS with clean and well optimized code. My point is that many Arduino libraries are bulky for no good reason and in many cases they are not good example to learn from.
hating arduino?
these days the higher end arm and other mcus have so many gpios, spi, i2c, adc, dac, memory extensions (e.g. ddr dram), video, audio and other pins/functionality, and the arduino headers is looking too few / too little to support all that capabilities lol
top tier mcus/cpus are coming closer a complete computer with all the on a chip, well beyond ‘soc’ used to mean
Yeah, amazing, isn’t it. My first post to this board was four years ago, and in that time I have completely abandoned the Freescale (now NXP) Coldfire processors and picked up on the Kinetis ARM processors. I’ve used everything from the lowly MK03 (M0+ core running at a measly 48MHz) up to the K66 (M4 core @180MHz). Dirt cheap eval boards (FRDM boards), with built-in debug interface and some even have arduino-compatible pinouts for so-call “shields”. Also, the KDS IDE is free and very stable.Life is good!
I’m throwing in my three pennys worth because I’m ranting mad ( I have been paying hunt the missing library for two hours) the arduino IDE has to be the worst thing hailed as the best thing since windows 8. The argument in favour of C (C+/C++) is the structured programming I have no problem with that from a professionals point of view time is money, but for a system supposedly easy to use for artists and non programmers (the arduino plug) no way. The worst thing I find if you are trying to understand a program is when you have to find a sub program in ……. C/librar/inafolder/inasubfolder/downahole/nameyoucantpronounce , whilst keeping the three other so other windows open so you can compare and find youre way around. After some serious contemplation operating systems/IDE’s (all of them and whatever they call them this week) with their pros and cons aside, are only as good as the people using them. I think some of us would be happy with something not too clever with a REALLY GOOD syntax checker and pain english error reports that actually mean something.
Rant over!
I would like to say a few words about arduino: BULL FU**ING SH*T for mentally challenged. why? microchip pic: mplab , c18, pickit & datasheet = 1 day, fully working project . atmel avr: 3rd day- still looking for the lib. atmel studio very intuitive, for aliens maybe.