*Please have in mind that I'm publishing this Instructable super close to the finishing line of the Arduino Contest (please vote for me!) as I haven't had the time necessary for making it before. Right now I have school from 8 A.M. to 5 P.M., do Tennis five hours a week, have camp group all Saturday, and homework most of the other days. Thank you very much for understanding, and hope you enjoy the Instructable!*
...
Maybe your a newbie working on a small project or a professional designing a cool robot. In both cases, you'll have to choose what controller board you're going to use. Now, before diving into which Arduino you´re going to use, please take into consideration the following: Arduino is not the same as Raspberry Pi. The first is simpler, smaller, less power-consuming; the other one is powerful, larger and better at more complex things. Most Arduinos cost less and do not have the graphic, AI, camera, etc. capabilities of the last; Raspberry Pies are way to powerful to put into an Arduino's place (except in some cases). Putting an Arduino where a Raspberry should be is like putting a 2-cilinder motor in a V6 car; and vice versa. That doesn´t mean that Raspberries are better, simply that they fulfill different tasks.
If you decided to use a Raspberry, please do not read this Ible (short for "Instructable". I'm always going to be using abbreviations like this, so don't get surprised!). I do not wish to have comments like "You wasted my time!" etc., just because you were expecting a Raspberry and only got Arduinos. If, on the other hand, you do want to find an Arduino board, disregard this warning and continue on. If you're a total beginner in Arduino, feel free to enroll in this Arduino class by bekathwia.
This Ible will be divided into the best boards for each kind of project. For this "classification" I'm going to take into account the size, pins, shield compatibility, ease of use, extra capabilities, among others. Now that we're finished with the intro, let's move on to the Materials.
Wait a second... What materials? Actually, if you had read the title of this Ible, you should have supposed, correctly, that you were'nt going to use any materials. After all, the purpose of this Instructable is to help you find which materials you are going to use in other projects. Just to give you an idea, when you actually get your Arduino board, have in mind you are also going to need the necessary USB cable or programmer, and also the Arduino IDE software (Mac, Windows and Linux). You can download it from here. The function of this program is to make the sketches (name given to the small programs you are going to upload to the Arduino board) and "put them into the board" ("upload"). If you´re interested, check this Instructable on how to program your Arduino with your Android cellphone (some guys told me that the IOS version of the app didn't work to well).
Now that you now what you will need (actually, you only need a new project, some interest in it and a couple of bucks. I'm not recommending any place to buy the boards, I got mine out of a local shop), let's pass on to the first board category.
The first category I'm going to tell you about is the basic or prototyping board. This doesn't mean is going to be extremely simple, cheap, and have few functions and pins. It just means that they usually aren't super complex, have a lot of info in the Web for you to check out, and can, more or less, take on any project you could be interested at this stage. Weight and size don't matter to much, you don't need 60 pins nor WiFi, but do need a solid working base. First Arduino that comes into anybody's head: the Uno.
The Arduino Uno is one of the most known models, and is extremely interesting for beginners and pros. One of the best capabilities it possesses, besides having USB/SPI/I2C ports (look for them on the Internet), is the ability to stack Arduino Shields onto it. Arduino shields are, essentially, pre-built PCB's that have pins underneath them and are mounted directly on the Arduino board. There are Internet shields, Servo shields, Proto Board shields, etc. Most of them were designed specifically for Arduino Uno, but some are also designed for the Mega (as the name says, it's large). Some shields are even designed for both the Uno and the Mega. The best thing about the shields is that they avoid the necessity of cables and, in some cases, many shields can be stacked one on top of the other.
So, the Uno is probably one of your best choices. In my experience, the Pro Mini was very good for my designs. At first I didn't have a definite project, but since it was small and, at the same time, had enough pins, it became extremely useful for anything I tried to make. Except for shield compatibility, it has just about the same capabilities as the Uno, except the USB port and some other special pins. Being small, however, it might not be the best option. The Nano is in a similiar position, even though it possesses a female Mini USB B connector.
To say the truth, you could use just about any Arduino without to many things (which raises the price). The most popular board, however, is by far the Uno.
So, you've already passed beginner boards. Now, instead of looking for a board that is useful for most simple projects and easy to interface, you are searching for Arduinos with smaller sizes and weights, but the same pins and capabilities. Not all intermediate projects, however, require these specs. Maybe you have extra space and an Uno fits in perfectly. But many times you'll be frustrated in finding that what you thought was a large space turns into a cramped one. So... Rule for making designs: always have in mind that your space will turn out smaller than what you expected. Try not to plan projects in which everything fits in perfectly; you will be disillusioned when it doesn't.
That's exactly why you should start thinking about smaller Arduino boards. It's a lot harder to put an Uno inside a drone shell than a Pro Mini or a Nano. Besides, as I said before, pins also start mattering, as does logic and supply voltage. Most sensors are connected directly to 5v; but others can't have more than 3.3v on their Vcc pins, even though they might use 5v logic. Some Arduino come with built in regulators, but Pro Minis, which come in 5v and 3.3v versions, don't have specialized regulator pins on them. The Nano, on the other hand, does. All the same, if you're going to choose between a 5v and a 3.3v Pro Mini, get the 5v, as it comes with a faster processor. 3.3v Regulators can be found on the Pro Mini USB programmer, or as small "transistors" (you can get them alone or already soldered to a mini board). Coming back to the pin count, both Pro Mini and Nano have, beside the 14 digital pins (of which you can use 12, the others are the Rx and Tx pins), 8 analog pins, while the Uno only has 6 of them. If your project requires more than six analog inputs (potentiometers, I2C, etc), you´ll probably have to drop the idea of using the Uno.
So, in this step, I'd recommend you the Uno (which is always useful), the Pro Mini (my first board, really lovely but doesn't have an integrated USB socket, which means you'll have to get an external programmer), the Nano (same size as the Pro Mini, but with USB socket and a couple more pins), and the Mega (way too large, but super good. Has more than 70 pins).
You've already spent some time tinkering with your Arduinos ans are ready to start a great and awesome project. But first, you're going to need a board that is not only capable of what you're aiming at, but that also fits into your precise frame. This need, however, does not imply that you have to get the smallest board possible. This hexapod by ivver, for example, with 3 servos in each leg and many sensors would need a lot more than the 20 digital pins available on the Pro Mini or Nano (12 digital pins + 8 analog ones. It isn't very much known that the pins A0, A1, A2, etc. can be addressed as digital pins if you use the pin number 14, 15, 16, and so on). In this case, you should probably opt for a Mega, which could control a modest number of 30 servos or more. If you're building a 3d printer, you should also use this board with the Ramps shield (I'm trying to make this project currently. Please vote for me in the Arduino contest, as I would need one of the prizes to be able to build it. If I finally do, I will be extremely grateful for your support and try to write an Ible on the making of the project). But if you want to build a micro Bluetooth quadcopter, you should choose the smallest board available (as long as it can handle the task).
So, great boards for advanced projects are... well, you might start thinking that the only boards I know about are the Uno, the Mega, the Nano and the Pro Mini, and that the last two are clearly my favorites (you probably guessed I would say those boards). It's true that I love the last ones and that I've repeated the same four boards in every category, but the thing is that they are relatively good boards for both beginners and pros. I started with two Pro Minis and later on bought two Nanos, and they seriously never let me down (so far). I'm planning on getting a Mega simply because the other boards are two small for a 3d printer. Apart from that, I'm still perfectly happy with the boards I bought almost a year ago (yep... still a relative newbie... but believe me, I've already spent my long hours tinkering with them and building circuits. Don't underestimate me or... your Arduino is going to burn out), as they can pull just about any project. If you feel, however, that these boards aren't what you're looking for or need, you could also check the Micro board (even though I didn't hear too good reviews about it... I opted for the Nano instead of it and I think I made the best choice), the Due, the Leonardo, among others (most of these look like the Uno or the Mega, but have some slight differences, like speed, operating voltage, etc.).
The categories I've told you about so far were divided according to the complexity and your board requirements. From this step forward, most categories will be regarding medium and hard projects. Here you'll want to make the job as efficient as possible, with the least effort and space occupied. You''l try to avoid cables, get an Arduino designed perfectly for your project, and not waste space and power at all. So, let's dive into the world of more specialized boards or applications.
If you took a look at how I always place drones as the best example for small-sized Arduino projects, you would have supposed that I'm a serious UAV fan. And that is exactly what I am. So the first category I'm going to talk about is... well, you should have guessed it... Drones.
Drones are defined as "an aircraft without a human pilot on board" (Wikipedia). As they are aerial, they have a certain weight limit. Of course, everybody would love having micro motors that lifted 2 kg each. But, as this is not the case, when you design your own UAV (Unmanned Aerial Vehicle), you'll have to try to make it as light as possible (less weight = less power consumption = more flight time). As long as two Arduinos have more or less the same weight and size, get the best one (faster processor, more pins, etc). Don't seek a board that has exactly the number of pins you need: always leave some "spares" in case you want to add more sensors, servos, etc. On the other hand, if two boards have the same pins and capabilities, always go for the smallest one.
Best boards for this kind of project: Pro Mini and Nano (which have just about the same number of pins and equal sizes). Of course, you could use any board you wish, but don't plan on building a 10 cm drone using a Mega (you'll earn my wrath forever. Would be interesting to see you try, anyways!). If you find a great shield or frame that goes along perfectly with a larger board, definitely use it. Currently I don't know of anything like this, but who knows what you might invent?
For the radio communications part, I haven't heard so far of a board that has an integrated communications chip (not talking about WiFi or Bluetooth, but true 2.4 Ghz capabilities with a good transfer speed). Some projects involve using a regular radio receiver and making the Arduino act as the flight controller. I found that it was more interesting to make the receiver and controller myself, using an accessible 2.4 Ghz transceiver module: the NRF24L01 (just call it NRF24 or RF24). Some of these modules come with external antennas for longer range, while others are smaller and only have a PCB antenna. For a long time I thought that the NRF24 was the whole radio module, until I was "enlightened" and "discovered" that the NRF24 is actually just a small, black chip, that the rest of the module is just a "breakout" board, which, of course, makes connections thousands of times easier. I really like this module, as it has a relatively good range (even though the antenna isn't external) is easy to interface. If you wish to check out a project made with it, read this Ible on how to add wireless servo control and battery level indicator to a cheap drone that doesn't have any of them (UAVs again!).
Continuing with the wireless communications theme, I'm going to tell you about the best boards for IoT (Internet of Things) or WiFi connections. IoT is a relatively new invention that seeks to have all things connected to each other, to automatize processes and make life easier. With IoT, you could turn off the lights you left accidently on at home from your office, or get emails when your dog food is running low. Basically, you just need a WiFi capable board, internet, and an IoT platform, such as IFTTT. Since I'm not an expert on making IoT projects and sketches, please check out this class by bekathwia, where you'll learn basic and advanced projects as well as how to interface the Arduinos used, both physically (wires, sensors, etc) and wirelessly (Internet).
The most known and used boards are the ESP8266s (the chip soldered on it is actually the ESP8266, and there are many different breakout boards with it). Some appear to be similar to a wide Pro Mini, while others look like an NRF24 module without external antenna that I told you of before. These last ones can be added to regular Arduino to add wireless capabilities. The Arduino Yun, similar to an Uno, also has an integrated WiFi chip, and comes in handy as it is compatible with a couple of shields and has more pins than a regular ESP8266. Both the Yun and the ESP8266 can be programmed from the Arduino IDE software, after having gotten the "drivers" from the Board Manager.
The ESP8266 are not all designed to work on 5v logic; some of their pins may require less voltage to operate correctly. That is why, before buying a board, always check the pinout diagram and specs (look for "(board name) + pinout + diagram" inside Chrome, Firefox, Safari, etc.).
There are also some "Arduinos" (not too sure they are real Arduinos, sometimes they're just a "collage" of different PCBs and boards, as well as chips) that are based on Uno and Mega-style processors and include WiFi connectivity. I'm not so sure on how they are interfaced or their compatibility with shields, so buy at your own risk.
Just another great wireless capability. The main difference with WiFi connections is that the range (in this case) is just a few meters (theoretically, you could control IoT boards from anywhere in the world, as long as the Arduino and you have internet), and that the speed of the Bluetooth connection is quite a lot faster. Bluetooth capabilities are great for making cellphone controlled projects (using specialized apps, such as Roboremo), like RC cars, rovers, drones, LED strip controllers, speakers, etc.
Some boards come with integrated Bluetooth chips (don’t know many, though). Others don’t, and that is why there are external Bluetooth modules. The most known chips are the HC-05 and HC-06, which are sold separately or in breakout boards, usually with a 6-pin interface (of which only 4 are commonly used). These modules rely on using the Tx and Rx pins on the Arduino (Serial pins), which may be replaced by virtual Tx and Rx pins (Software Serial). Because of this, it is possible to program the HC-05 and HC-06 using the Pro Mini programmer through the Serial Monitor of the Arduino IDE. Using this method, you can choose the name with which it shall appear to other devices, the password, the baud rate, among other options. I got to know about this from this great Instructable by sayem2603. If you’re planning on using these modules, you should definitely read the Ible, as you’ll find tons of interesting facts you didn’t know about.
So, good boards for Bluetooth connections are… well, I haven’t tried any Arduino with integrated Bluetooth chip, but as far as I know both the HC-05 and HC-06 are one of the best solutions. Just about any Arduino works with these modules; I personally use both the Pro Minis and the Nanos. The only thing you might not like about using these Bluetooth modules is that you need 4 cables. If you’re the “no cables; only shields and boards” guy, you might have to do some digging. If not, you’ll find that, even with the cables, a small Arduino with one of these boards doesn’t occupy as much space as an Uno-sized Arduino with Bluetooth does.
Besides WiFi, Bluetooth and 2.4 Ghz modules and boards, there are also some which operate on different frequencies. The jhaewfawef, for example, whose existence I discovered when I read this great Ible by …, uses lower frequencies to achieve extremely long range transmission (LoRa = +10km range). I haven’t tried them out yet, but it seems like a super interesting project. Some modules use 169 Mhz, 433 Mhz, 868 Mhz, or 915 Mhz, but all frequencies are below 1 Ghz. The advantage over 2.4 systems is that range is improved, but the data rate has to be lower (doesn’t matter too much… you ain’t gonna send a 1Gb file through these radios… probably). The pin interfaces can vary greatly, from 3 or 4 pins to a whole Nano-style board with radio.
To say the truth, I don’t really know much about them as I’m more a 2.4 Ghz guy. The …., however, seems great and I would love getting one as soon as I’m able. These Arduinos (or modules) are perfect for weather sensors (far from your base), UAV telemetry, and maybe even some sort of non-WiFi IoT (not properly IoT, but still you could control your house’s electronics with these kinds of radios). So, if you’re interested in something like this, try to get one of them.
Besides WiFi, Bluetooth and 2.4 Ghz modules and boards, there are also some which operate on different frequencies. The Adafruit Feather 32u4 RFM95, for example, whose existence I discovered when I read this great Ible by Jakub_Nagy, uses lower frequencies to achieve extremely long range transmission (LoRa = +10km range). I haven’t tried them out yet, but it seems like a super interesting project. Some modules use 169 Mhz, 433 Mhz, 868 Mhz, or 915 Mhz, but all frequencies are below 1 Ghz. The advantage over 2.4 systems is that range is improved, but the data rate has to be lower (doesn’t matter too much… you ain’t gonna send a 1Gb file through these radios… probably). The pin interfaces can vary greatly, from 3 or 4 pins to a whole Nano-style board with radio.
To say the truth, I don’t really know much about them as I’m more a 2.4 Ghz guy. The Adafruit Feather 32u4 RFM95, however, seems great and I would love getting one as soon as I’m able. These Arduinos (or modules) are perfect for weather sensors (far from your base), UAV telemetry, and maybe even some sort of non-WiFi IoT (not properly IoT, but still you could control your house’s electronics with these kinds of radios). So, if you’re interested in something like this, try to get one of them.
As I told you in one of the first steps, shields are PCBs that are stacked directly on top of an Arduino board to a) add a function and b) reduce cable necessity. Sometimes, shields can be stacked onto other shields, making a sandwich or shield-tower of many bards. Some shields are only compatible with a specific Arduino (since pin distribution varies from model to model); while others are designed for more than one (this screen is huge, tactile, and compatible with both Uno and Mega. Seriously would like to get it. Hopefully, if I win the Arduino contest, I may get to but this module and so many other Arduino components to bring more Instructables to you).
Most shields are designed for the Uno and Mega (probably as well for similar boards, but not so sure about that. Don’t ruin your shields or boards!). Shields can also be custom made (check out these Ibles) or designed for smaller boards. Some of them add wireless capabilities, network connectivity, screens, buttons, proto-board surface, motor controllers, AC relays, etc. Some special shields are deigned specifically for CNC and 3d printing (Ramps board). These have sockets on the top to add the stepper motor drivers.
So, if you’re thinking about getting an Arduino board to use with different shields, my best suggestion would be the Mega and Uno. The last one has the disadvantage of having less pins, so you won’t be able to use larger shields as the Ramps. The Mega, on the other hand, has its own problems: some pins on the Uno are found in different sectors on the Mega, so you won’t be able to use all Uno shields, which are more popular and widespread that Mega ones.
Some of my favorite projects are related to CNC or 3d printing machines (and drones). The ability of transforming computer designs into 3d mechanical movements is just…. Awesome. Not only the theoretical part is cool; the satisfaction of making your own pieces with a machine that YOU built from scratch is immense. The CNC shield can be used to make laser engravers and cutters, drilling machines, Dremel based CNCs, etc. Currently I’m saving money to build my first 3d printer, based on the Arduino Mega and the Ramps 1.5 shield. Until now, all the mechanical parts I needed for my projects were made using Legos or something similar, resulting in interesting but imprecise “machinery”. Please vote for me and help my project get going. Once finished, I will try to make an Ible on how to make a 3d printer.
Returning to CNC and 3d printing, if you’re interested in any of these things, you should probably check this CNC shield (designed for the Uno, but I suspect it is also compatible with the Mega) or these 3d printing ones (Arduino Mega compatible only, have way too many pins for an Uno). Both the CNC shield and the 3d printing one have sockets devoted specifically for stepper motor drivers (similar to the A9488), which control the X, Y, and Z axis’s (and the extruder on the 3d printer) motors. I don’t know much about the CNC shield, but the Ramps also has the necessary connectors for the other parts of a 3d printer (thermistors, high-power source, heater bed, etc.). As far as I know, there are 3 versions of the Ramps board (3d printing shield): the 1.4, 1.5, and 1.6. The last two models are almost identical, looking tidy and relatively plain, while the oldest one looks slightly different (with transistors mounted using THT technology, larger fuses, etc.). The 1.6 includes better cooling for the Mosfet transistors. There aren’t too many differences anyways, so choose the one you like most (try to get the newest one, though).
So, the best Arduinos for this project would be the Mega (not so sure if it’s compatible with the CNC shield. I saw something of a guy using the Ramps to power a CNC machine. You should look for that and then tell me about it), and in the second place the Uno (definitely not compatible with the Ramps). You could wire a 3d printer using just about any Arduino with a respectable number of pins; however, it’s going to be a serious mess, so save yourself some time and patience and get a Mega.
You thought the Pro Mini and Nano were small? Well, just take a look at the Attiny “boards” (actually just chips). Sometimes you just have to control a small servo with only one pin, or blink a led every 3 seconds, and put the electronics in a super small (2x2x2 cm) place. What do you do? First of all, you forget the Mega and the Uno. Then you doubt a little and finally clear the Nano and Pro Mini from your mind. What’s left? A micro, 8-pin IC (Integrated Chip) called the Attiny85.
This micro “board” (which is actually just a small chip) has a 5v and Gnd pin (1 each), and 6 other pins, some of which double (or triple) as analog, digital, SPI, etc. pins. You should check the pinout for the precise specs. Apparently, the board can be either programmed with a specialized USB adapter or even with another Arduino (using a special sketch and the SPI interface. I’m not a pro on this matter). I preciously thought that you could simply use a Pro Mini programmer (using the Tx and Rx pins) to upload a sketch; but as far as I now know, you can’t.
So, great micro boards for micro projects are the Attiny85 (just a chip, but you can either solder it to your breadboard or use a 2x4 female IC socket, into which the Attiny85 should fit perfectly), the Digispark Attiny85 (it’s a Kickstarter breakout board for this IC. It includes, in a small space, an USB connector, power regulator, and pin for making connections easier), or another Attiny IC (they come in many sizes).
Just about every good product gets its clones and copycats. GoPro, DJI, Lego, and every successful brand and company has seen this happen. And Arduino is no exception to the rule. To say the truth, I don’t even know how to distinguish a real Arduino from a fake one. Maybe even one of those boards I recommended is a clone, but most of them aren’t. If you wish to learn which boards are original and which aren’t, you should check internet, as there are tons of the necessary tutorials and info to find out.
I’m not going to say whether you should trust clones or not. You should, of course, try to get original boards, as there will be much more info and support for them on the web. Besides, clones sometimes differ on pin distribution, so shields might not work on the “same” board.
I doubt the boards I have are clones. All 4 were relatively cheap, anyways, so saving a buck or less wouldn’t have changed my life. The problems with clones are that a) The name or model might differ on the Arduino IDE; b) Shields might not be compatible; c) Special pins may differ (I2C, SPI, etc.); d) They might not work as expected. Clones, however, may work perfectly, and you might even be happier with a fake that with an original. But, if something fails, remember I told you that you should get originals (please don’t blame me for anything that wasn’t my fault. If it was, then you can blame me).
So, now that I’ve told you about most Arduino categories I know about, it’s time for you to…
Well, now that you’ve finished reading, please vote for me in the Arduino contest. Hope this Ible was useful to you and helps you in your first or next project, and thank you very much for reading!