Microcontroller Boards
Microcontrollers are often packaged as boards with connectors for sensors, controllers, displays, and other electronic components, and other components to simplify their use in building physical computing or IoT solutions.
While specifications vary across boards, they all generally have the following:
-
A Microprocessor:
This executes the instructions that tell the board what it needs to do. -
Memory:
Memory is used to store instructions and data. Memory can be volatile (the data is erased when the microcontroller is powered off) or non-volatile (the data is stored even when the microcontroller is powered off).Memory is categorized into two types:
- Flash/EEPROM (Erasable Programmable Read-Only Memory) which stores the instructions or programs.
- RAM (Random Access Memory) which stores the data used by the programs.
-
Serial communications interfaces:
Microcontrollers can be connected to a computer to upload programs and exchange data. Serial communication interfaces are used for that purpose. The serial communication happens through USB cables and through pins. Microcontrollers are pre-programmed with a boot loader that simplifies the uploading of programs to the on-chip flash memory. Boards are loaded with program code via a serial connection to another computer. -
Digital and analog input/output (I/O) pins
The boards are equipped with sets of pins that can be connected using wires to components or other boards or modules. Pins can provide digital or analog signals and can be used for General Purpose Input/Output (GPIO) or for specific functions.
Some GPIO (General-Purpose Input/Output) pins server other functions such as I2C, SPI, and UART communication. If you do not need these pins for their specific functions, you can use them for regular digital input/output, but otherwise, keep them free for their specific functions.
Some pins output a high or a low signal when the board boots up. Any active components connected to these chips will be affected. For example, an LED connected to a pin that outputs a high signal when booting up will light up.
A board makes available its microprocessor pins and may add some pins of its own for additional functionality. The pins on a board are labelled, generally using letters and numbers (such as D1, D2, and so on for digital pins, A1, A2, and so on for analog pins). When a pinout diagram or pin numbers are provided in specifications, it is important to know what pin they are referring to, the chip pin or the board pin. In most projects we will be using the board pins.
- A 5V or a 3.3V linear regulator
Arduino boards can be powered from your computer or with a DC supply or batteries. The onboard regulator maintains the voltage at the required level to prevent damage to the board.
Boards generally take a 5V input but the output voltage on the pins may be 5V or 3.3V. Only boards and components with the same voltage may be connected. If a higher voltage is supplied the board or component may get damaged and if a lower voltage is supplied they may not work reliably.
- USB Cable Connectors
These are used to allow the board to be connected to a computer from where the program can be uploaded. One important aspect of USB cables is that they are for charging only or for charging and data. For programming Arduino and other boards, you need cables that support charging and data. Data cables have four connector wires in the USB interface, while power cables have only two connector wires. It is not easy to differentiate between the two visually, so you must read the specifications thoroughly.
Arduino Ecosystem
Arduino is an open-source platform that simplifies the task of building electronic circuits, and more specifically physical computing or IoT solutions. The platform includes hardware (known as Arduino Boards) and software (known as the Arduino Integrated Development Environment).
Arduino boards are designed such that it is easy to connect sensors to them. The boards read inputs from connected sensors and can be programmed using the IDE and the Arduino programming language to process the inputs. It is also easy to connect output devices (such as LEDs and relays) to Arduino boards and have the programs control them.
The Arduino platform was created as an easy tool for fast prototyping without requiring too much knowledge of electronics and programming, aimed at students and enthusiasts. The main objective is to make the process of working with technology and electronics easier.
There are other similar projects, most notably Raspberry Pico from the makers of the Raspberry Pi and ESP32 from a company called Espressif. Arduino is still the most popular, but the others have their advantages. We will be using all three boards in our projects.
Modules
While all boards offer basic processing and input/output connectors for sensors, relays, and display components, some boards may not offer advanced options, such as the ability to connect to a WiFi network or receive Bluetooth signals. Modules are specialised circuits that are designed to work with boards to provide these additional features that the boards may not have. Modules are separate circuits and need to be connected to the primary board using wires and connectors.
Shields
Shields are an alternative to modules. Shields are designed to augment the functionality of boards just like modules, but they are designed in a manner that they can be plugged into the primary board. The size of a shield is the same as the primary board and aligned with the necessary pins, which allows the rest of the connectors or pins of the primary board to be accessible through the shield.
This design approach allows you to buy smaller and less expensive boards and augment their features as required rather than always needing to buy a full-featured board, which will be more expensive and take up space. As technology evolves and the cost of production goes down, boards may start to include more features for the same price and in the identical size of the board, in which case some shields and modules may no longer be required.
Some of the more commonly used modules are WiFi Modules, Bluetooth Modules, and Radio Modules.
Compatible Boards
Arduino is an open-source project, which means that its board designs are available for anyone to use, even for commercial purposes. While Arduino makes and sells original boards, many other manufacturers make boards with the same design and are compatible with Arduino boards, shields, accessories, and software. You can choose to buy original Arduino boards, which are relatively expensive but come with the reliability you can expect from an original product. Or you can buy compatible boards, which are cheaper and usually reliable but you may experience issues in some cases.