Unofficial list of all supported MCUs

At the official Hardware page, we have references to development boards. However, I'm interested in knowing about all MCUs that so far are partially or fully supported by Arduino. For instance, although there is no official mention to ATTiny, I was able to find code from people who successfully ported Arduino code. As a result, I bought one ATTiny85 and in less than 5min I had my code running (a very basic one considering the hardware limitations of that MCU). Now, I'd like to know about any other effort besides the MCUs already mentioned at the Arduino-Hardware page.

Thanks!!

ATMega644/1284 is "supported" by many people. If you widen the search to ARMs and PICs etc there must be dozens by now.


Rob

In terms of processors using the Arduino interface:

  • Teensy 3.0, Teensy 3.1, Teensy 2.0, and Teensy 2.0++ sold at http://pjrc.com. Teensy 3.0/3.1 are based on a Cortex-M4 ARM chips, the Teensy 2.0 is based on ATmega32u4, and the Teensy 2.0++ is based on the AT90usb1286 processor ;
  • Trinket, Gemma, and Flora sold at http://www.adafruit.com. The Trinket and Gemma are based on ATtiny85, and the Flora is based on the ATmega32u4;
  • Digispark and DigiX are sold at http://www.digistump.com. The Digispark is based on the ATtiny85, and the DigiX is based on an Arm Cortex M3;

MichaelMeissner:
In terms of processors using the Arduino interface:

  • Teensy 3.0, Teensy 3.1, Teensy 2.0, and Teensy 2.0++ sold at http://pjrc.com. Teensy 3.0/3.1 are based on a Cortex-M4 ARM chips, the Teensy 2.0 is based on ATmega32u4, and the Teensy 2.0++ is based on the AT90usb1286 processor ;
  • Trinket, Gemma, and Flora sold at http://www.adafruit.com. The Trinket and Gemma are based on ATtiny85, and the Flora is based on the ATmega32u4;
  • Digispark and DigiX are sold at http://www.digistump.com. The Digispark is based on the ATtiny85, and the DigiX is based on an Arm Cortex M3;

Another one of this category coming
• NavSpark, $20 GPS/GLONASS/Beidou Receiver | Hackaday, A Sparc-v8 processor based design with 100MHz RISC/FPU + 1.2MB memory + GPS

"Energia" for the TI MSP430 and ARM (mostly, for the chips you find on TI's "LaunchPad" boards.)
"ATmega128" supported by "Wiring." (Some other chips, too.)

MPIDE for PIC32

http://chipkit.net/

Also take a look at this:

i think the op was talking about the MCU's themselves (e.g. attiny85, atmega1284, attiny2313) not the various development boards built around those MCU's, which could be a massive list.

not the various development boards

Arduino sort-of ties them together, by needing that pins_arduino.h file defining which pins go where for each "board."
You can't write sketches for a chip that doesn't have the (or "an") associated board-level definitions file. One of the consequences is that if you are able to write your own pins_arduino.h and boards.txt entries, then you have a much larger set of chips available to you that you would if you're relying on an implementation done by someone else. Chips like ATmega88, ATmega32, ATmega1281, and a bunch more - the core libraries will theoretically work on these chips, but it's not a "no-effort" proposition.

I always thought there should be a set of "chip" board types, where the arduino pin numbers are exactly the pin-numbers on the bare chip itself. But this would add a lot of confusion since ALL the actual "board-level" changes omit the power pins and such.

westfw:

not the various development boards

Arduino sort-of ties them together, by needing that pins_arduino.h file defining which pins go where for each "board."
You can't write sketches for a chip that doesn't have the (or "an") associated board-level definitions file.

Not only that but there are cases of the different boards using the same processor that use different pin mappings.
Take a look at the Leonardo vs Teensy or the Various "Sanguino" boards.

westfw:
I always thought there should be a set of "chip" board types, where the arduino pin numbers are exactly the pin-numbers on the bare chip itself. But this would add a lot of confusion since ALL the actual "board-level" changes omit the power pins and such.

One positive thing about this would be that the same Arduino pin# would be used of the alternate functions
like serial, spi, i2c, analog input, etc...

Maybe a better question would be which MCUs have Arduino cores written for them?

But even if you get a list of those, it isn't even that simple because not all the cores have full support
for all the core functions & libraries included in the latest Arduino team IDE.
The Arduino team keeps futzing with the APIs and libraries often in non backward compatible ways
so it is difficult for the 3rd parties to keep their code in sync with newer Arduino IDE releases.

For example, The maple ARM core is about the 0018 level but uses its own version of the IDE.
The pic32 cores & libraries are not up to 1.x they are compatible with 0023 but also use their own version of IDE.
There are some tiny cores out there some work with the latest 1.x IDE and some don't.
The Teenyduino core plugin for the Arduino Team IDE is perhaps one of the best in that it supports the latest 1.0.5 but also
has updates to allow much of the older pre 1.x code continue to work.

And then in the big picture very few, if any, of the 3rd party cores or core addons work with
the newer 1.5.x Arduino team IDE.
And even if a MCU has a core that will work on a given IDE, it may lack support for libraries
that come with the Arduino team IDE, either because they don't have the h/w to support
or nobody has spent the effort to get it up and working on that MCU.

In my opinion, one of the biggest problems when trying to use other MCUs,
is that many "Arduino" libraries out there are not in fact Arduino "pure" libraries.
By "pure", I mean a library that only uses Arduino core code calls.
Once a library steps outside of using Arduino core code functions and starts touching h/w, then it is no longer
portable to other MCUs, so it will not work on other MCUs, including those that have Arduino core support.

--- bill