Many reasons not to use Arduino in your next project

Actually the idea of Arduino is great. It’s a gold mine for novices to get simple and middleweight projects to get working in a short time. But all fun ends when critical timing kicks in. Probably this is why there are lots of attempts to mimic Arduino with high performance microcontrollers like PIC32 based ChipKIT or ARM based Netduino. These alternatives may save you in most cases by turbocharging performance but eventually you will end up wasting resources for hidden unknown and then you’ll be forced to dig deeper in to microcontroller hardware.

Vassilis gives a nice lists that demotivates choosing Arduino for more advanced projects. Instead he suggests focus on pure programming using tools like AVR-GCC with no hidden libraries and functions. He points many reasons like Arduino IDE which is worst IDE for writing and editing code, fixed Arduino clock speeds, mandatory bootloader which occupies program space. Also simple operations like digital write takes to many clock cycles. Some background code is still running even if you’re not using it. As a proof try to compile empty Arduino program and you’ll see that it takes at least 466 bytes for doing nothing. By no means we are not discouraging using Arduino. As in all areas choose smart. And learning microcontroller architecture instead of blind relying on libraries is always a win!

[Read]

5 Comments so far

  1. Cool Cap Engineer on August 9th, 2012

    I agree. I’m starting to cut down my arduino use because I realized that Arduino cannot be used for commercial use, and using Arduino for projects makes the project too simple.

  2. kiranvarma-npeducations on August 14th, 2012

    Yeah! you are right! every one wants their product to be commercialized, but arduino won’t make it. arduino is for study and hobby purpose.

  3. fihakika on October 6th, 2012

    i do not agree with you. Arduino is easy for starters and good for rapid prototypes. When it comes to production, you can apply your logic on another board or you can modify the bootloader source code as you want, because it is open source! not code, but also hardware schema!

  4. Laurens on December 14th, 2012

    I also disagree. a massive community and libraries to do almost everything, such as SD card FAT access and relatively advanced TFT display functions. It’s easy to setup, and once you are used to it, you can get into the advanced functions. nobody is forcing you to use digitalWrite, you can access the ports manually if you want to. you can edit the “hidden code” as well if that bothers you, while still having access to powerful Shields and Libraries. If you want to make a final product, just take the hardware and throw together what you need, and make your source code open. Adding a FTDI connector would then be a product feature, since people can modify the source code with a simple FTDI programmer and the easy-to-setup Arduino IDE.

  5. Steve Spence on February 1st, 2013

    As a professional Arduino developer, in commercial factory settings, I think this story is hogwash. There’s no reason to use digitalWrite if you need speed, you can ta;k directly to the ports. I’ve never found a factory automation project that couldn’t be easily prototyped, and put into production with an Arduino.

Leave a reply