1

There are all sorts of Arduino and Arduino-compatible boards out there. They come in all form factors and they come with all sorts of different I/O. They even come with memory specs and different kinds of microcontrollers, from the ATmega328P to Intel-based.

So what is it that imbues a board to become "Arduino Compatible" ? Must it be pin-compatible? Must it be possible to compile Arduino source code for the board? Or must the board be binary-compatible? Must it emulate some specific processor instruction set?

Very curious. Please reference specifications if possible. Thank you.

1

The problem here is that "compatible" can mean so many things in different contexts and to different people. For instance, it may mean any of the following:

  1. Can be used with the Arduino IDE without any need for additional board installation of other modifications
  2. Can be used with the Arduino IDE after modification (boards installed)
  3. Uses the same (or very similar) API to the Arduino system
  4. Has the same footprint as an existing official Arduino board
  5. Is a device which will work with an Arduino board and has software available to operate it

All very different meanings.

Point 1 could be a board that is based on the design of an existing Arduino board (say the Uno) but built into a new form factor, maybe with additional hardware and peripherals added. It is still treated as if it was the board the design was based on though.

Point 2 would be a board that is similar, though not the same, as an existing board. A different board definition may be required to map the IO pins properly, for instance. It could use a slightly different chip in the same supported family. You still use it as an Arduino, but it's not the same as an existing Arduino board.

Point 3 may mean it's based on a completely different chip. The programming environment may be almost the same, but it's hard to get 100% API compatibility. Arduino sketches and libraries may work out of the box, or may not.

Point 4 could be a board that, internally, is completely different to the Arduino, uses a different programming language, IDE, etc, yet the layout of the board is the same as, say, an Arduino Uno. A good example is the Mecanique Firewing - an Uno footprint, but a PIC32 chip instead of an Atmel, and Basic instead of C++. Most Arduino shields would just plug in and work though, software permitting.

Point 5 is from the completely opposite direction. This is a device which "is compatible with" in that "it will work with" and Arduino. That could be on an electrical level (it's a 5V device and will connect to the Arduino) or that it has full software support ("Download our Arduino library..."). It has nothing to do with how the device works or what it is though.

I prefer to use specific terms, respectively:

  1. Based on the Ardino UNO
  2. Programmable with the Arduino IDE
  3. Compatible with the Arduino API
  4. Footprint compatible with the Arduino UNO
  5. Suitable for use with Arduino boards

That way it states exactly in what way this device relates to the official Arduino boards.

0

I think the practical answer is: it is not defined.

In practice:

For peripherals, it seems to mean that it can interact with an Arduino compatible board.

For boards, as far as I can tell, it has to be: instruction-set compatible, OR pin (layout) compatible with another board which was previously defined as Arduino compatible.

0

I think you could say it is Arduino-compatible if it contains a processor found on an Arduino board. For example:

  • The Atmega328P (found on the Uno, Duemilanove, Pro Mini, amongst others)
  • The Atmega32U4 (found on the Leonardo, Micro, amongst others)
  • The Atmega2560 (found on the Mega2560)
  • Other processors used by Arduinos such as the Atmel SAM3X8E ARM Cortex-M3 CPU used on the Arduino Due.

With a processor used on an Arduino, you will find that you can almost certainly compile code using the Arduino IDE, and the Arduino libraries, that will work on such chips.


You could say it is Arduino-Uno-compatible if the board physically was compatible with the Arduino Uno (ditto for other boards). In other words, if it was possible to plug a shield, designed for the Uno, onto such a board. That could be called "plug compatible" I suppose.


As for other boards, like sensors, relay boards, etc., I have seen a lot of those on eBay advertised as "Arduino compatible", but of course they would also be compatible with other micro-controllers as well. I'm waiting for the day someone advertises "Arduino compatible" resistors.

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.