I am debating which micro-controller to use for a new open source hardware project. Spec wise, I would rather use an ARM Cortex M3, which is at a similar price-point to an Arduino(avr) based solution but with more processing power/peripherals. The only concern I have going with ARM based hardware is I don't want to lose potential contributors/developers who might be put off by working with ARM. Or competition wise--someone reproducing the project but with an arduino instead(e.g. Ardupilot overtaking Paparazzi)

I realize there is no straightforward answer to this question but I would like to hear your thoughts on the topic, and what other factors you think might weigh more on the success of the project.

  • \$\begingroup\$ Random anecdote: ZPM Espresso was planning on using Arduino, but gave up and used an ARM. They're also ~1-2 years behind their Kickstarter schedule. \$\endgroup\$ – Nick T Oct 29 '13 at 2:08
  • \$\begingroup\$ @NickT I think the main problem of their Espresso machine is the price, not AVR vs ARM debate. $200 is an insane price for a machine usually sold for $50-$100. \$\endgroup\$ – Dmitry Grigoryev Jun 22 '16 at 7:40

I think it depends who you're trying to attract. Having an Arduino derivative which can be programmed directly from the Arduino IDE will attract Arduino users.

But, in my experience, the average Arduino user is not neccessarily a skilled developer who will contribute usefully to a project. Of course, there are many expert Arduino users, but it's a device aimed at the beginner.

On the other hand, the kind of user who can get a toolchain and debugger going for ARM Cortex-M3 is also likely to be capable of fixing your bugs for you. But, there are considerably less of them.

I'd say - pick what's right for your project. If it's good, users will get involved.

  • \$\begingroup\$ I agree on that the platform is not a major issue, a cool project will get people involved, regardless of what platform. \$\endgroup\$ – Kortuk Nov 30 '10 at 22:56
  • \$\begingroup\$ I suppose you are correct in that Arduino developers may not have that much experience in strictly embedded programming/debugging, but I think it may attract a lot of other developers such as Web/Windows/Linux developers who could contribute usefully at the application level. Also, wouldn't the skilled ARM developers be a subset of those willing to work on an Arduino version? \$\endgroup\$ – stbtra Nov 30 '10 at 23:26
  • 3
    \$\begingroup\$ @stbtra, I know many different microcontrollers and consider myself skilled, I do not use arduino. I have never had need as I was originally taught other technologies and there is not competitive advantage to me. Short answer, ARM developers are not a subset. \$\endgroup\$ – Kortuk Nov 30 '10 at 23:28
  • \$\begingroup\$ For me, an ARM is preferred, but it really does depend on what you're trying to build. \$\endgroup\$ – pingswept Dec 1 '10 at 0:56
  • \$\begingroup\$ @pingswept, not surprising, but I agree. \$\endgroup\$ – Kortuk Dec 1 '10 at 2:58

The way to have a successful open source project is to get people interested in it. Just because your project is open source doesn't mean anyone will want to work on it (or care). Your project needs to be interesting beyond "oh, I know [language] and have the toolchain for [development environment]"

The product engineer in me thinks that being unable to select between Arduino (an extremely limited subset of AVRs) and ARM is a big hint you don't really know what you want to do; though I guess you're trying to figure out if you want to trade off extensibility versus accessibility?

  • 1
    \$\begingroup\$ I agree on that the platform is not a major issue, a cool project will get people involved, regardless of what platform. \$\endgroup\$ – Kortuk Nov 30 '10 at 22:58
  • \$\begingroup\$ ARM Cortex M3 is a micro-controller version of ARM, it runs THUMB instructions and lacks things like an EBI/MMU. I am not debating between an AVR and a vastly more powerful applications processor specific processor like OMAP3 with an arm926. for your reference: arm.com/products/processors/index.php \$\endgroup\$ – stbtra Nov 30 '10 at 23:21
  • \$\begingroup\$ ARM is a different class completely. I mean look at this: "The Cortex-M3 NVIC is highly configurable at design time to deliver up to 240 system interrupts with individual priorities, dynamic reprioritization and integrated system clock." ATMega328 has 2 interrupts for comparison. \$\endgroup\$ – Matt Williamson Dec 2 '10 at 15:24
  • \$\begingroup\$ @Matt That's the ARM Cortex NVIC Core that Keil licenses. Most implementations don't use all 240 interrupts. also if you're going to count all interrupt sources the avr has ~ 21. In any case I think the complexity of the interrupt controller isn't super game changing. \$\endgroup\$ – stbtra Dec 3 '10 at 2:23
  • 1
    \$\begingroup\$ @stbtra: Yes, we all know that ARM licenses cores to companies to build controllers with. Our point is that ARM is generally a step up from even the high-end AVRs, and is categorically steps above the limited AVRs used by Arduino platforms. \$\endgroup\$ – Nick T Dec 3 '10 at 2:26

You can't limit yourself. An ARM Cortex M3 can do thing an Arduino just can't. In fact the Arduino uC is one of the more basic/vanilla/limited processors in the AVR line itself. Don't hamstring your project and yourself just to try to gain followers. If this project doesn't help you learn and extend your own boundaries then I don't think it's worth doing. If you've outgrown the Arduino, move on.


The short answer: No.

The longer answer: Well...

A major incentive for outside developers to get involved and help your project is how much it costs for them.

An Arduino is a relatively expensive and clunky piece of hardware compared to just a bare AVR, so if you are building something that's supposed to be in actual use then using an actual Arduino is a horrible idea.

Making a system Arduino compatible is a whole different matter, it can be as easy as bringing out TXD, RXD and RESET on a header with an FTDI-cable pinout and using one of the AVRs that the Arduino IDE has support for.

Casual tinkerers might then use the Arduino IDE with your board, while more advanced users could use plain C and a make file.


A Cortex M3 based target doesn't have to be more complicated... have a look at the Maple, an STM32 based "Arduino copy". To program and debug you can use OpenOCD based JTAG or just use the USB cable.

And the answer to your question is, no it does not have to be Arduino based to become a great success....

  • \$\begingroup\$ the armmite pro, like the maple is an ARM with an arduino footprint. \$\endgroup\$ – old_timer Feb 25 '11 at 4:56

I would say being another **duino project will make it less interesting, but there probably is a group of people who only care about or have access to that platform. I expect that applies to a lot of other platforms.

My personal take on platform choice is that you shouldn't care or think about popularity. If you're after a project, you pick the tools that make sense to you and use those.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.