There's a LOT of confusion around Arduino these days. Most people that use them cannot tell you what an Arduino actually is, much less explain what a clone is. Is Arduino a board, software, a microcontroller, a chip, a mini-computer, all of the above? Do you use C, C++, or the Sketch language to write your code? Not understanding this can make it hard to know what a fake, clone, or derived Arduino board is as well.
Arduino is actually an open-source electronics prototyping platform, designed to beginners and students without a background in electronics and programming. They originally built a very user-friendly platform to program the ATMEGA microcontroller. They have recently expended to options to include other microcontrollers and chips. The platform includes everything you need, an application (IDE) where you write your code, a pre-processor and a compiler to translate your code into the machine language of the microcontroller, and a bootloader to handing loading the code onto ATMEGA chip. Except for the compiler, each of these are open-source and available to download for free. The compiler is avr-gcc and is free to distribute, but is owned by Amtel, the makers of the ATMEGA chip used by Arduino. All of this makes up the Arduino platform and this is what most people mean when they refer to Arduino.
The language that the Arduino IDE uses is C++. However, the Arduino IDE controls how you work with the C++ code. For example, you cannot create your own separate files from within the Arduino IDE but you can add nested classes to your sketch and you can add your own functions. What this means is that while it is fully C++, what you can do is very limited. This limited C++ that is controlled by the Arduino IDE is what they call the Sketch language. It is not really a language per say, as the language is C++. But it is very tightly controlled, which is why they gave it its own name. The point is that by controlling what you can do, you only need to learn a very limited set of C++ code to work with Arduino.
The Italian company that owns the Arduino brand, markets products under both the Arduino in the US and Genuino elsewhere. The company also designs and markets what they call open-source [mother]boards for the platform. By open-source, they mean that they publish the designs. The software that they developed is what makes the platform special and has allowed it to become so well adopted in the amateur, hobby, and educational communities. What all of this really means for us, is that anyone can build their own compatible boards and use the Arduino platform to program them free of charge.
The Arduino company contracts the manufacturing of their board designs to board manufacturers and these are the officially trademarked Arduino boards and the only ones legally allowed to use the Arduino and Genuino logo. Since the platform has become so popular and anyone can create a compatible board, a number of companies do so. There are many dozens of reputable Arduino compatible board manufacturers around the world. Some companies like SparkFun in the US are the licensed manufacturer that builds some of the officially licensed boards for Arduino (they stopped a few years ago). But they also build a few compatible boards of their own. I would recommend any of the boards they build, wither it be the official Arduino boards or their own compatible boards.
There are two types of compatible boards. The first are (1) clones, which are exact copies without any changes, and (2) derived boards, which are compatible but not are not exact copies. In my experience, most of the compatible boards are derived boards because it is easy for manufacturers improve them and make their boards stand out in unique market niches. And as you can imagine, there are a few not-so-reputable manufacturers as well. Some of them make Arduino fakes, which are boards that illegally use the Arduino logo and trademark and are typical less reliable than any of the compatible boards. So, you need to stay away from the fakes or counterfeits.
Do your homework before deciding on an officially licensed board or a compatible board. But don't think you should avoid the compatible boards, as they offer some great niche features such as battery powered, solar chargers, motor drivers, and many, many other great features not offered on the official Arduino boards. My current go-to compatible board is the Cytron UNO SE. For younger students looking to learn electronics, Cytron's Maker UNO X is a great board. We offer both of these on our website.
Building your Own
Building your own Arduino compatible board is pretty simple. In fact, in our classes on microcontrollers and robotics, we teach you how. We take some time to dig into what Arduino is and what all the parts are on an Arduino motherboard, and how to build them yourself for about $3 to $4. You want to understand this process, or you will end up having to use an Arduino board on every project you build, or you will need to scavenge it out of your last project for your next. But a better way is to just drop a $3 chip into your project and program it using the Arduino platform. Or maybe for your needs, ordering a few compatible boards for just a few dollars more will be your preferred solution.
Comments