How to choose and where to buy Arduino. Mini-review of Arduino-compatible boards of various architectures Arduino comparison

Now we will look at three platforms for developing embedded applications: Arduino Uno, RaspberryPi, compare them and give recommendations on choosing the right one for your next project (Figure 1). In general, for professionals, all three can be recommended.

These three models were chosen for comparison not by chance: they are all really affordable, made in a compact form factor and can be used to create various digital devices. Before we proceed to the comparison, we will present a brief description of each of them.

The Arduino Uno has been considered a staple in the ham community for some time now (Figure 2). Now Arduino boards are available in various form factors, with a different set of peripherals. Most of them are made on an 8-bit Atmel microcontroller. And not so long ago, the Arduino Due board was announced on a powerful ARM microcontroller with a Cortex-M3 core. For our review, the Arduino Uno was chosen as the representative of the Arduino platform. A simple development environment and a large knowledge base and developments are available for it, which indicates the possibility of creating sufficiently functional applications.

The Raspberry Pi board is new to the game - it is a single board computer marketed as a low cost solution for budding embedded developers (Figure 3). Despite the modest appearance and low cost (about $ 35), you get a real computer that can become the basis for many projects.

The BeagleBone is perhaps the least known of the three platforms, but its capabilities deserve the attention of embedded application creators. It is a powerful Linux computer in a compact size that supports Android and Ubuntu (Figure 4).

Figure 4

Comparison of three development platforms.

All three boards have certain features and a set of peripherals that make them valuable for developers and designers of microcontroller systems. Below we tried to compare them in terms of some important parameters (Table 1). You can see that it is the differences between the boards that make each of them ideal for developing a certain type of application.

Table 1. Comparison of characteristics of boards Arduino Uno, BeagleBone, RaspberryPi.

Platform Arduino Uno Raspberry Pi beagle bone
Model R3 Model B Rev A5
Estimated price 29.95$ 35$ 89$
dimensions 7.5×5.3cm 8.5×5.4cm 8.6×5.3cm
microcontroller ATmega328 ARM11 ARM Cortex-A8
Clock frequency 16 MHz 700 MHz 700 MHz
RAM 2 KB 256 MB 256 MB
Flash memory 32 KB SD card 4 GB (SD card)
EEPROM 1 KB - -
Supply voltage 7 - 12 V 5 V 5 V
Minimum
Energy consumption
42 mA (0.3 W) 700mA (3.5W) 170 mA (0.85 W)
Digital lines
I/O
14 8 66
Analog inputs 6
(10-bit ADC)
- 7
(12-bit ADC)
PWM channels 6 - 8
TWI/I2C interface 2 1 2
SPI interface 1 1 1
UART interface 1 1 5
Tools
development
Arduino IDE IDLE, Scratch,
Squeak/Linux
Phyton, Scratch,
Squeak, Cloud9/Linux
Ethernet port - 10/100 10/100
USB master interface - 2 USB2.0 USB 2.0
Video output - HDMI, composite -
Audio output - HDMI, analog analog

Arduino and Raspberry Pi are inexpensive boards under $40. The BeagleBone is priced at almost three Arduino Unos. However, the Arduino is 40 times slower and has 128,000 times less RAM than the other two. Already at this stage, you can see important differences. Arduino and Raspberry Pi are cheap boards, while Raspberry Pi and BeagleBone are much more powerful.

It seems that the Raspberry Pi looks like the optimal solution at the moment, but this is not entirely true: for work you will need to separately purchase an SD memory card, which is another $ 5 - 10 to the cost of the board itself. Also, despite the same clock speed, the BeagleBone runs twice as fast as the Raspberry Pi. And no matter how paradoxical it may sound, Arduino is the best choice, at least for beginners. The main reason for this is the Linux operating system that runs the Raspberry Pi and BeagleBone boards. This "fancy" software turns the boards into tiny computers that can run multiple programs at the same time and can be programmed in a variety of languages. The development of applications on Arduino is very simple due to the lack of multitasking and programming in the low-level C++ language.

Note an interesting feature of Raspberry Pi and BeagleBone: the ability to run software applications from a memory card (SD card for Raspberry Pi, microSD for BeagleBone). This means that you can have different OS configurations, applications, builds, and OS images on different memory sticks, and choosing one or another project is done simply by replacing the memory card. In the same way, you can change the operating system.

Choosing a platform for development

For beginners, we recommend the Arduino. Today, the Arduino community is a lot of users, a huge amount of educational materials, ready-made solutions and projects that you can use in your applications. In addition, Arduino offers the easiest way to interact with external peripherals.

The Arduino platform was originally designed to provide a simple way to connect various sensors and actuators to the microcontroller without additional external circuits, so you do not need deep knowledge in electronics to develop simple applications and devices. If you haven't used an Arduino before, it's worth getting one and giving it a try. This will be a really great experience that will come in handy when creating serious and complex projects.

For compact devices, we recommend the Arduino platform. All three development board models tested are small in size. The only negative point is inherent in the Raspberry Pi - the SD memory card installed in the slot makes the board larger than the rest of the test participants (Figure 8).

As we noted above, there are many variations of Arduino boards (Figure 5), but they all have two things in common: they use a specific Atmel microcontroller and an Arduino bootloader that implements the basic functions of the board. For compact devices (perhaps not requiring a PCB) you can purchase this cheap microcontroller and program the bootloader into it using any AVR microcontroller programmer.

For developing applications that require an Internet connection, we recommend the BeagleBone or Raspberry Pi. Both devices run Linux and have Ethernet and USB ports (Figure 6). Using USB, you can connect wireless data transmission modules and, thus, realize the functions of wireless data transmission and Internet connection (Figure 7). In addition, the Linux operating system has many built-in software components that provide advanced networking features.

It is also possible to implement Ethernet-enabled applications on the Arduino platform using expansion boards called Shields, but the network functionality of such applications will be very limited. The purchase of separate expansion cards will also require additional financial costs.

For applications and systems that interact with external sensors and actuators, we recommend the Arduino or BeagleBoard. Any version of the Arduino hardware platform implies a simple connection of external sensors and interaction with them. For radio amateurs, several options for boards with a supply voltage of 3.3 V and 5 V are available, which simplifies the connection of external peripherals. The BeagleBone board is powered at 3.3V, so if you connect some types of external devices, you must use additional resistors or logic level matching circuits. Both Arduino and BeagleBone have an analog-to-digital converter interface (the resolution of the ADC built into the microcontroller on the BeagleBoard board is slightly higher), which indicates the possibility of connecting various analog sensors.

With that said, it is important to note that many modern sensors are equipped with digital I 2 C or SPI interfaces. All three boards support this type of serial interface and it is quite easy to implement interaction with it.

For battery powered devices, we recommend the Arduino. This decision is due to the fact that Arduino has the lowest power consumption, however, in terms of the ratio of computing power per watt, BeagleBoard is a clear leader. However, the advantage of the Arduino is that it works over a wide range of supply voltages. Thus, various types of batteries can be used as a power source for the board, the microcontroller remains operational even when the batteries have used up their resource.

For GUI applications, Raspberry Pi is recommended. The Raspberry Pi single board computer really falls into a category of its own, as the board has an HDMI output (Figure 8). This means that you can connect a mouse and keyboard to the board, and connect the board directly to your TV. Thus, you get a fully functional computer, which is ideal for use in POS terminals and kiosks. For fun, during testing, we installed the Arduino development software tools on the Raspberry Pi, wrote a small program, and programmed the Arduino board through the Raspberry Pi interface.

Conclusion

Arduino is a fairly functional and flexible platform for developing embedded applications with great opportunities for interacting with the outside world. It is great for learning about microcontrollers and can serve as the basis for small projects. Raspberry Pi is the best choice for applications that require a display, a graphical user interface and an Internet connection.

The BeagleBone platform perfectly combines the flexibility of Arduino, the performance of the processor of the Rapberry Pi board and the Linux OS (and in fact, the performance is higher than that of the Raspberry Pi). With ample I/O, the BeagleBone provides easy network connectivity and allows you to implement a web server.

Arduino is the most popular hobby and educational robotics platform. Which Arduino board or kit should a beginner buy? How to buy Arduino cheap? How are Arduino analogs different from the original board? The answers are in our review.

arduino or whatever-duino

Through openness Arduino, its structure is known and allows free modification. Therefore, any board manufacturer can produce analogue board Arduino, make changes to the board itself, not to mention the free configuration of kits.


Since Arduino is a manufacturer's brand, analogues have other names, but usually consonant with Arduino - Freduino, Freeduino, DCcduino, Xdruino, Funduino, robotale and many others. Moreover, the brand may not be indicated at all, but there will be an inscription like for Arduino. The original Arduinos are made in Italy, most analogues are made in China. There are also Russian developments.

Visually, most of these boards look the same (the Arduino has a company logo) and even have the same blue color (there are exceptions, but not much, Funduino, for example, is red). Also, Arduino analog boards usually have the same prefixes in their name as Arduino itself, for example, DCcduino UNO corresponds to Arduino UNO (what UNO is - below).

Unnamed analogue of Arduino UNO

Analogues are usually not inferior in quality, but they greatly benefit in price (more on that below).

All instructions, all methodological developments, lessons, etc., focused on Arduino, are fully suitable for analogs. Therefore, if the image is nothing to you, then feel free to take other duins!

Arduino Starter Kit

The manufacturer recommends that you start learning Arduino with a set Arduino Starter Kit. This kit contains the board and other electronic components needed to get started with Arduino: LEDs, resistors, servo, motor, button, LCD, piezo, sensors, and more.

To buy an Arduino Starter Kit from an official manufacturer, you will have to pay about 80 euros.

Analogues significantly win in price with a similar configuration. The lowest prices for them in Chinese online stores. Comparing prices for sets, of course, you need to take into account their composition. So, Starter Kit for Arduino with DCcduino board on the AliExpress website it costs a little less than $34 - the equipment is similar to the original one. Slightly smaller equipment Starter Kit for Arduino with Robotale board on the DealExtreme website costs $28. Shipping to Russia is free on both sites.

Almost any of these kits contains the necessary minimum for beginners and is suitable for mastering ours (small kits often do not have a photoresistor).

Starter Kit for Arduino

I myself have an interesting story. I ordered such a kit from DX - as you can see in the photo, there is a non-original Arduino, but a completely Italian Arduino came! A trifle, but nice.

Buying a ready-made Arduino robot as a start to learning

We have already talked about buying ready-made robots as a way to get acquainted with Arduino for the first time. There are many such Arduino-based kits on the market. For younger children, this way of getting to know Arduino is preferable, as it is a ready-made toy that you can play with and then disassemble and use the Arduino board and other components in training.

Of course, the finished robot may not contain all the parts required in, but everything missing can be bought separately. Simple DIY components such as LEDs and resistors can be purchased at any radio parts store.

In the photo, the popular Arduino robot is , costing less than $ 100.

Blutooth controlled car

Choosing an Arduino modification for a beginner

On the official website of the Arduino manufacturer, 20 modifications of the Arduino board are presented. Among them are Arduino Uno, Arduino Due, Arduino Leonardo and others.

Arduino UNO and analogues

It is the most popular, usually included in the kits described above, and, perhaps, it can be called a standard Arduino board. This is one of the cheapest Arduino boards.

On the official website of Arduino UNO can be bought for 20 euros + shipping. In large Russian online stores, including official distributors, it is sold for 1150-1300 rubles. Usually in Moscow and St. Petersburg you can pick it up by self-delivery (we recommend online stores and DESSY), but in other regions you will also have to pay for delivery. It turns out to be expensive. Although sometimes you can find shops with low prices in Russia. ROBstore online store offers low prices and fast delivery. The price will still be higher than in China, but waiting for the parcel is much less.

The original Arduino UNO can also be bought in Chinese stores, but you need to carefully look at the descriptions and the photo (this is not always clearly visible in the description texts). However, descriptions are sometimes erroneous (as I wrote above). The price, of course, is lower than in Russian stores.

As in the case of kit kits, you can buy Arduino analogues very cheaply. For example, an almost identical analogue of DCcduino UNO on dx.com costs less than $10, and on aliexpress in general $5.50!

DCcduino on AliExpress for $5.5

Other Arduino board modifications

Let's look at which of the boards are convenient for a beginner to get acquainted with the basics of electronics.

Let's go by the elimination method.

We immediately refuse 4 modifications of the board Lilly Pad- they are intended for "electronic textiles" - sewing LEDs into clothes, etc. Later we will write about them.

Arduino LillyPad

If you do not plan to make ready-made robots, that is, you will often upload programs to the board, it is much more expedient to use boards with a USB port - it is more convenient to connect them to a computer.

USB ports do NOT have a board: Arduino Mini, Pro, Pro Mini.

If you want to get to know the basics of electronics, the "fancy" boards are not very suitable for you: Esplora, BT, Ethernet, Tre, Yun, Robot.

Remain UNO, Leonardo, Due, Micro, Mega ADK, Mega 2560, Nano, Fio.

If you insert Shields to expand the board (in their form, motor drivers, boards with additional connectors, etc.) are executed, you must take into account that they have a standard format that Micro and Fio do not have.

I must say that the Arduino Nano also has a non-standard size, but it is easy to insert it into the Breadboard - its legs are located on the underside of the board.

Let's compare the prices of the remaining boards on the Arduino Store:

  • UNO - 20 euros,
  • Leonardo - 18 euros,
  • Due - 36 euros,
  • Mega 2560 - 29 euros,
  • Mega ADK - 44 euros,
  • Nano - 33 euros.

In the Chinese stores mentioned above, you can find analogues at a significantly lower price.

Arduino is often referred to as a single board computer. And it is with the choice of a computer that a beginner is best compared with the choice of an Arduino board.

The fees are different:

  • microcontroller and the frequency of his work(ATmega328 - 16 MHz, ATmega32u4 - 16 MHz, ATmega2560 - 16 MHz and others),
  • input and output voltage to the board,
  • the number of analog inputs and outputs,
  • the number of digital ports, including those supporting PWM,
  • amount of flash memory.

The number of ports on the board determines the maximum number of devices connected to it (sensors, motors, etc.), and the amount of flash memory limits the length of the program loaded into it.

Analog Arduino Leonardo

Brief characteristics of some boards:

: ATmega328 microcontroller, 14 digital ports, incl. 6 with PWM, 6 analog inputs, 32 KB Flash memory, USB type B port.

Arduino Due: microcontroller AT91SAM3X8E, 54 digital ports, incl. 12 with PWM, 12 analog inputs and 2 analog outputs, 512 KB Flash memory, 2 microUSB ports.

Arduino Leonardo: microcontroller ATmega32u4, 20 digital ports, incl. 7 with PWM, 12 analog inputs, 32 KB Flash memory, MicroUSB port.

All prices are as of the posting date.

There are many varieties of Arudino boards: Nano, Mini, Uno, Leonardo, Mega, Lilypad ... It is difficult for a beginner to understand their diversity. In this article I will talk about the types of Arduino boards. At the end of the article there are links to sellers I have verified where you can buy an Arduino board. Click on to quickly jump to the table with links.

The main differences between Arduino boards:

Arduino differ from each other:

  • size
  • number of pins
  • memory size

Board size, primarily affects the convenience of working with it. The most common board - Arduino Uno (and its updated version of Arduino Leonardo) are about 6 × 5 cm in size. This allows you to do without a magnifying glass when creating a prototype on a breadboard and get fairly compact working devices. The Arduino Nano is very compact. Its size is only 4.4 × 1.9 cm, while its functionality is no different from large boards. The Arduino Nano also attaches well to the breadboard thanks to the male pins. In an attempt to make the boards even smaller, versions of the Arduino Micro (an Arduino Uno clone released on a 4.8x1.77 cm board) and Arduino Mini (the minimum configuration is missing - there is no USB connector for powering and uploading the firmware, the firmware is uploaded through a special adapter. Fun fact : arduino mini is much smaller than micro, while micro is almost the same size as nano.So the name of the board models is just the names of the board models and does not reflect the actual size.There is also a huge, 10.2 * 5.3 centimeters Arduino Mega She received such a size for a reason.There are as many as 70 pins on the board.

Number of pins determines the number of external peripherals that you can connect to the board: LEDs, servos, various sensors, modules, buttons and much more. The boards have digital and analog outputs. Digital outputs can only take 2 values: HIGH and LOW. HIGH corresponds to the presence of current on the output, LOW to the absence. They wanted to light the LED - they transferred the output to the HIGH state. A voltage appeared on the output and the LED lit up. Issued LOW and the LED went out. Digital outputs can also read values, similarly, only 2 states. If the output from the outside (for example, from a button) is supplied with voltage ~ + 5V, then the controller considers the value HIGH. Voltage less than 5 volts will be detected as LOW.
Analog outputs allow you to read the value of the applied voltage in the range from 0 to 1024. Where 0 is 0 volts, 1024 is 5 volts. The measurement range can be changed by applying a reference voltage to the dedicated AREF pin. In this case, any analog output can be used as a digital one. But digital cannot be used as analog.

Digital outputs can also support: a special mode of operation to control the brightness of the LED or the speed of the motor. However, everything is simple here: nano, mini and uno have six outputs with PWM support. Leonardo and micro are equipped with seven PWM pins, and only the gigantic Arduino Mega 2560 takes the lead with fourteen PWM pins.

Memory, at first glance, a very important parameter. However, don't treat the board like a computer. It does not need a lot of operational and even more permanent memory. I won't go into detail on this. Because the “poorest” Arduino Nano in this regard has only 32 kilobytes of permanent memory and 2 kilobytes of RAM, but by the time the program you wrote for the microcontroller no longer fits into these 32 kilobytes of permanent memory, you will already be well versed in everything on your own, and you won't need this article. Seriously: 32 kilobytes is just a huge memory for a microcontroller program.

The amount of non-volatile memory, a more interesting parameter. Non-volatile memory, as its name implies, stores data regardless of the presence of power. In this case, the values ​​of the variables in your program are stored in RAM, which is erased when the controller is rebooted. In addition to non-volatile memory for storing the program itself, a separate memory area (aka EEPROM) is allocated, which allows you to save the values ​​\u200b\u200bof variables directly from the controller program to a special cell. Then, after rebooting, the device will be able to restore the state in which it was before the power was turned off. Most controllers allow you to store only 1 kilobyte of data. In addition to the small volume, there is also a limit on the number of write operations. A total of 10,000 times you can write data to one cell (you can read data any number of times). 10,000 - at first glance, not so little. Recording is carried out in cells of 1 byte. In total, we have 1,000 cells. For example, if you poll a certain sensor only once a minute and store its value in memory and each time in a new cell, the device will work (((100,000 * 1,000) / 60) / 24) / 365 = 190 years. However, most often you have to write data in one cell (for example, the number of seconds). And then the resource is already reduced to 2.5 months of continuous operation, and this is for recording once a minute. If the task arises to update the value once a second, then in just 27 hours the EEPROM will be damaged. Therefore, non-volatile memory is used to store settings and other rarely updated values. And it’s more convenient to write sensor readings or a device operation log to an SD card (by the way, I have about connecting an SD card to Arduino).

Choose a board

The most popular board is the Arduino Uno. It makes sense to compare all other boards with it. This is a small board. There are 14 digital and 6 analog inputs/outputs along the edges of the board.

The 6.9 x 5.3 cm board is the most suitable for rapid prototyping. Not too big and convenient connectors for connecting wires from the breadboard make it very convenient for beginners. The so-called shields (Shield) - in 99% of cases, they were created specifically for installation on the Arduino Uno board. Now another board, Arduino Leonardo, which is an ideological continuation of UNO, is gaining distribution. It has minor differences in the assignment of some special pins and connects to the computer with a much more compact micro USB cable. Most of the UNO shields fit the Leonardo as well, but there may be some unpleasant surprises due to the inconsistency of some of the pins.

This is really the best option for the Arduino board. If you are buying a board for the first time and just want to try your hand, your choice is Arduino Uno or Leonardo. Most of the ready-made kits, by the way, for this reason, are equipped with the UNO board. I will tell you more about the selection of a ready-made set at the end of the article.

A rather interesting variation is the Arduino Nano. This board measures just 4.4cm x 1.9cm and is fully compatible with Leonardo in terms of functionality. Even special adapters are sold for connecting shields from UNO to Nano. The boards are identical in terms of the number of pins, the amount of memory, and the speed. Nano, thanks to its miniature size, is convenient to use in a finished device to save space in a cramped case. Arduino Nano is equipped with pins instead of holes for connecting connecting wires. This adds to the hassle of prototyping (the board has to be installed on a breadboard and takes up space, but it helps when transferring the prototype to a real device. You can simply solder wires to the controller pins.

The Arduino Mega is the largest board in the Arduino family. More memory, huge number of pins (70!). This board is designed for complex devices to which you plan to connect a variety of peripherals. In fact, the correct name for the board is Arduino Mega 2560. But since the Arduino Mega (without the numbers in the name) is now considered obsolete, it is practically impossible to buy it and for short, the board is simply called Arduino Mega. But in reality, the board turns out to be useless as when creating a prototype. as well as in the finished device. In the prototype, its huge size interferes most of all, and for the finished device it can be useful, perhaps, only the number of pins, but you can easily get additional pins on any other board using or, if there are not enough PWM pins, you can use. The only real advantage of Mega over other boards is the amount of memory for loading the program. Once I needed to display a large amount of graphic information on the running line and the program took almost 100Kb. The project was going for a couple of days and I didn’t want to rewrite the algorithm for storing information on an SD card. This is where Mega came to my rescue.

Where to buy an Arduino board

Arduino was originally developed by Italian engineers. The author of the idea is Massimo Banzi. It was the board made in Italy that was considered the original Arduino. Later, a split occurred in the development team and the original boards are produced both in Italy and in the USA. However, initially Arduino drawings began to be distributed under a free license. This means that anyone can produce boards that exactly repeat the design of the original. The copyright covers only the Arduino name itself. That is why there are a huge number of modifications and alternative versions of the board from third-party manufacturers. Of course, China, as a real center of electronics production, currently offers a lot of arduino compatible boards. Personally, I recommend not to overpay thousands of rubles for the original, but pay attention to a copy of the board at an affordable price. Seriously, the cheapest Arduino Mini board, the original from the factory in Italy, costs 1400 rubles in Russia, while the Chinese clone can be ordered for $ 2 with free shipping. It is most convenient to buy boards on the popular Aliexpress online platform. At the end of the article, I have collected for you links for ordering boards and various sensors that I myself ordered and made sure of their quality. Also there you will find links to order ready-made kits to start exploring the world of Arduino. If for some reason you intend to purchase an original board, then go to the Amperka website. There are definitely original boards.

Outcome

If you are a beginner, then buy the Arduino Leonardo without hesitation.
If you already have a few prototypes and are planning to turn them into finished devices, take a look at the Arduino Nano.
If you've been scratching your head, but still haven't figured out how to cram all the stuffing of the device into a cramped case, use the ultra-compact Arduino Mini.

A small comparative table of the main characteristics:

PaySize, cmNumber of pins (digital/analogue)The amount of permanent memory, KBThe amount of RAM, KBThe amount of non-volatile memory for storing variable values, KBClock frequency, MHz
4.4×1.914 / 8 30 2 1 16
Arduino Mini1.8×3.314 / 8 16 1 0,5 16
6.9×5.314 / 6 32 2 1 16
6.6×5.220 / 12 32 2,5 1 16
11×5.254 / 16 128 8 4 16

Arduino boards

NameStatus

Everyone who uses Arduino microcontrollers is familiar with the issue of saving firsthand. However, buying Chinese boards from unknown manufacturers in the hope that at least some of them will work as advertised is not the best strategy. But among the many useless pieces of iron, you can also find a worthy cheap replacement for arduino stm32, which has already become famous in its circles.

Let's see if this board is worth up to $ 10 with the delivery of its popularity, and what it can give the user, in comparison with the usual Arduino PRO version. To do this, we will analyze both microcontrollers and make a list of all their advantages and disadvantages so that you can answer for yourself whether it is worth spending money on arduino stm32 ide.

Let's compare the two boards by their technical parameters:

Specifications STM32F103C8T6 Arduino Nano
Controller frequency, MHz 72 16
Program memory, KB 64 32
Food, V 3.3 5
RAM, KB 20 2
USB 2.0 Yes No
DMA Yes No
CAN Yes No
RTC Yes No
UART 3 1
Firmware via USB No Yes
Price, $ 2.1 1.8

As we can see, in many respects, arduino loses to stm32. Below we will try to compare boards from different angles.

Pros and cons of Arduino and STM32 microcontrollers

Let's start with the advantages of a premature favorite - the arduino itself. And the most important of them is known to everyone who worked with this chip and its counterparts - its own ecosystem. You can find answers to all your questions on the Internet, because the knowledge base and the number of microcontroller users, even in the CIS segment, is amazing. And this means that you do not have to look for instructions in English, which cannot be said about stm32f103c8t6 arduino. A large number of users also implies a wide software functionality, only a grain of which is provided by the manufacturers themselves.

The fan base creates dozens of libraries every day, so you can bring any of your ideas to life. Some circuit solutions with the stm8s001j3 microcontroller may not please beginners in this matter, while arduino tries to please the new user as much as possible and does not provide any difficulties.

Affordable shields emerge from here, ease of use, which stm microcontrollers cannot boast of, and simple programming under Atmel, without the need to learn all the subtleties of the language in practice. Well, the more advanced ones will appreciate the EEPROM that comes with the box, which the stm32 microcontroller cannot boast of.

However, as elsewhere, it has its drawbacks:

  1. The low threshold of entry implies a large number of curves and poorly tuned libraries, working almost on their last legs. Having stumbled upon such software a couple of times and debugging it for a couple of days, you decide that it is easier to write your own.
  2. The next advantage of stm32 arduino does not provide normal debugging, which is why searching for errors in the same crooked libraries takes so much time.
  3. Normal performance on Atmega is a myth, and in fact you will need to dodge and refuse many product features in order for it to work without lags. Normal schedulers are also not found, and those that can be connected eat up too many resources. Because of this, Arduino crafts are famous for their crooked and lagging interface with a long response time, if we are talking about something more complicated than an electronic heck or a design from a microcontroller and a motion sensor.
  4. A lot of crooked and frankly useless products on these boards, especially from the Chinese, only worsen the image of Arduino.
  5. Of course, you cannot find normal books on stm32 microcontrollers, but arduino does not provide much professional information, in addition to forums where users themselves are involved in debugging.
  6. And the software development environment for it requires simply incredible performance, incomparable with anything on the market. Moreover, where all the consumed resources go is not entirely clear. And accordingly, the culprit is terrifying optimization.

On the other hand, the user gets arduino stm32f103 and arduino stm8 a high-performance controller that simplifies the transition from the stm32 microcontroller to the milandr microcontroller and a lot of peripherals in addition.

Board design is greatly facilitated by the free movement of the legs, the stock development environment is quite a powerful tool, and debugging is built from the outset to work flawlessly even in foreign environments. You are provided with colorful graphs and dots, not to mention textual information. Easy code porting, the ability to run individual controllers at 41Mbps, and USB ports almost everywhere. All this can easily lure more advanced developers, but they should also familiarize themselves with a number of disadvantages:

  1. High entry threshold, a good basis is required for normal use.
  2. Libraries are also present, but most of them are outdated or made by everyone personally for themselves. It's easier to create your own. But if you remember the problems of Arduino, then it is likely that you already know how to do this.
  3. Lower spaces and generally ugly semantics compared to competitor's simple functions.
  4. C99 is still far from C++, and you will immediately feel all the difficulties of the transition. However, many argue that after a while - on the contrary, they are happy with such a nuance.
  5. In general, the cheapness of the boards in comparison with Arduino.

Opportunities to improve the "usability" of STM32 to the level of Arduino

However, not everything is as bad as it may look. Initially, STM32 boards can be programmed in the Arduino development environment, although this is not the best solution. It should be remembered that in this way you cut down on functionality, use a lot of crutches and shoot yourself in the knee.

However, during the transition, this is a rather useful nuance that allows you to more smoothly master all the charms. The semantics of C99 may not be to your liking for the first weeks, therefore it is better to find a translator, because the Arduino environment completely destroys the point of buying another microcontroller.

Debugging STM32 microcontroller

As already mentioned, microcontroller debugging is worthy of individual tirades and enthusiastic responses. Right out of the box you get a device that can be freely debugged in any environment, variables are displayed in the console, and convenient information graphs allow you to visually detect a bug. This is especially convenient when the amount of code simply does not allow you to walk through it step by step.

After switching to STM32, you will eventually completely forget about outputting data through the console, because much more reasonable and practical solutions will come to replace these templates.

In the following material, we will step by step how to use the Arduino IDE for the STM32 board.

There have already been several articles on the thematic blog about choosing the first microcontroller and starting to work with it. No less interesting were the comments to such articles. One of the thoughts that has been brought up there several times is that not everyone who has an interest in MCUs comes from transistors. Some (God forbid, more) come to them from the side of (applied) programming. It is not reasonable to recommend such people to pick up a soldering iron, they already have things that they can “solder”. So we come to the word "Arduino", which many have already heard. Among the experienced with soldering irons there is - Arduino is a scarf on the AVR for the lazy. Is it so? This article is an attempt to clearly show that Arduino is not about AVR and not about laziness, Arduino is an architecture-independent electronic-mechanical platform of compatible components, in terms of (relative) importance no less important than (at one time) IBM S / 360, IBM PC or USB.

AVR is more alive than all living

Having reached the second part of the review, the reader will see that Arduino-compatible boards on modern powerful 32-bit controllers cost not much more, and sometimes even less than on the original AVR architecture. And yet first AVR. Why? Because the masters say that sooner or later you will want to assemble your device. And I believe them. I believe that one day I will take an 8-leg ATtiny in a DIP package, stick it in a cardboard box and turn on the soldering iron. And I will know what to do next - after all, I have already prototyped everything on the Arduino AVR.
Arduino Duemilanove
This is the penultimate version of the official Arduino, and most of the compatible boards that are currently on the market are based on Duemilanove circuitry. It includes the ATmega 328 microcontroller (in the past decade (read: before 2010) the ATmega 168 was also installed) and the FTDI FT232RL USB-to-Serial converter. $25

Arduino Uno
The current version of the official Arduino. While there are few alternative implementations on the market, but they are starting to appear, one is included in this review. The main difference from Duemilanove is the replacement of the popular, and therefore not expensive, FT232RL chip with ... ATmega8U2. Yes, yes, there are actually two AVR microcontrollers in Uno, and one with hardware USB. Why two, why not put one? A question of compatibility, friendliness for beginners and for own developments. Apparently, microcontrollers with hardware USB are only available in SMD cases, so it will not be easy to use one in your developments or replace a failed one on the board. Therefore, it is better to use the good old ATmega328 in a DIP-socket, and leave the ATmega8U2 for the future. Judging by how confidently Uno is gaining ground - for the near future. $30
Iteaduino
There are many clones of the Arduino Duemilanove that actually copy it one to one. But we expect progress and improvement from the competition, and not a simple “rip-off” allowed by an open license. Iteaduino is a good example of developers having "done their homework". Many electronic components require a 3.3V power supply, which requires additional level pairing when working with a classic Arduino. Iteaduino, on the other hand, allows you to power the board with 3.3v or 5v to choose from (with a switch on the board). The “salt” of using Arduino is, of course, in connecting external I / O devices, and for simple devices, the GVS (Ground-Voltage-Signal) interface standard has developed de facto. For a pleasant (without a web of wires) connection of such devices to the classic Arduino, you will have to buy a shield, and in Iteaduino there are corresponding connectors right on the board. In addition, ergonomics have been improved - in the original Arduino, when the shield is on, you can’t get to the Reset button (that’s why many shields duplicate it) and the LED is hard to see, while in Iteaduino they are placed on the edge of the board with accessibility. $25

Seeeduino Stalker v2
Thanks to the Arduino standard, you can create not only general-purpose boards, but also specialized boards that can still be easily expanded with existing components. One of the ideal applications for Arduino is the development of autonomous wireless agent nodes for a distributed control and management system. Seeeduino Stalker boards are designed for this application. In version 2, the board has a lithium battery charging controller with the ability to connect a solar panel, a real-time clock (RTC) powered by a super-capacitor, a microSD slot, a *Bee socket (in the original XBee for the ZigBee protocol, but there is already a BTBee in that same form factor) and I2C connectors. $39
Ruggeduino
Are you a beginner who likes to flip power and grab bare GPIOs with electrified hands? Or do you connect the sensors with wires of 20 meters, and sometimes lightning strikes around? Or are you using Arduino for production purposes, where the requirements for protection and reliability are higher? Ruggeduino will help you, one look at it will be enough to imbue you with respect and understand that this is a real industrial Arduino. $40

RoMeo All-in-one
Board for robotics, contains on the board a lot of interface connectors, motor driver, buttons. $36
CraftDuino
The Russian version of Arduino with improved ergonomics (access to LEDs and Reset) and features: the board has a connector for all pins of the FT232 chip, which allows it to be used for bitbang applications (programmer of various MK, JTAG, etc.), and the ability to solder additional pins for installing CraftDuino on a solderless breadboard. $30

Faster, higher, stronger

So, we grew out of the AVR, but all our shields, sensors, servos are with us. And we will not make them disappear, because they are for Arduino, not for AVR. We will also continue not to succumb to the stereotypes that there is only some kind of ARM, and some kind of Cortex. Everything is much more interesting!
ChipKIT Uno32
Every student that AVR is good and PIC is bad. However, this should not be extended to all MK families. PIC32 is quite a normal processor with MIPS architecture. And MIPS is one of the leading RISC architectures. Compared to ARM, it has one advantage - it is not as popular in the media, so the royalties for MIPS are lower, and processors are cheaper on average, and lead in hotel market segments such as routers. For example, an Arduino non-compatible packaged board with Ethernet, WiFi and USB host costs less than $50 even in this country, ARM would never dream of such a thing. But now we are looking at Arduino compatible, and ChipKIT will not make you bored at 80MHz. 20EUR

netduino
Cortex will wait again. On the stage - the classic ARM, the ARM7 core, represented by a chip from your favorite vendor AT91SAM7X512-AU. At its 48MHz, it even clicks the .NET Micro Framework! $35
FEZ Panda II
Of course, managed code is easier to write, so the .NET MF parade continues. This board comes with a "USBizi" marketing chip, which turns out to be an NXP LPC2387 with the appropriate firmware. At 72MHz, it could probably play MP3s. Only not in .NET code, of course. $40