GenericBoardIllo_rev2 dev board

Boards can be divided into two categories: those that can run Linux, like Raspberry Pi, and those that can’t, like an Arduino Uno. While this is a completely arbitrary distinction, it is also a useful one because it helps to describe what you should expect in terms of board features, complexity, power consumption, and programmability. For the sake of description, we’ll call boards that can run Linux “advanced” and those that can’t “basic.” Here’s a breakdown of what matters about any given board.

Computing

Every board has a main chip where the computation or processing of information takes place. It is mostly the differences between chips that distinguish one board from another. Each chip has different capabilities, strengths, and weaknesses.

Basic boards typically have a single chip that can process data in 8bit or 16bit chunks. These boards run your program at lower processing speeds, in the millions or tens of millions of computations per second. The chip that runs a basic board usually includes all the electronics necessary to easily interface with the real world, like analog inputs, timer inputs and outputs, and more.

Advanced boards generally use a 32bit or 64bit main chip that integrates all of the components that you’d typically find on a computer motherboard into a single device. Sometimes these are called “system on chip” or SoC. The main chip on an advanced board can run just as fast as a phone or tablet, processing your software in the hundreds of millions or even billions of computations per second. All this, squeezed inside a circuit board that fits in the palm of your hand for less than the cost of a movie ticket. Wow!

Indicating

Everyone likes blinky LEDs, and every board should have at least a power LED and a software-controlled LED. The power LED is critical for letting us know at a glance when the board is properly plugged in. One or more software-controlled LEDs is a must. Frequently, the first thing people do with a new board is to blink an LED. It lets us know that we’ve got things working.

Oh no! Button (Resetting)

Even though we’d like to think that our software is perfect, there are always circumstances that cause software to break. The reset button sends your board back to the beginning of your program so you can watch it crash again — and hopefully figure out what went wrong. Every good board has a reset button.

Powering

USB, batteries, and wall warts are pretty typical sources of power for boards. Problem is, except for 5V USB, all these sources have a pretty wide range of voltages, while the computer chips on most boards need a fixed voltage. So the power section of a board includes a voltage regulator that takes electricity from the power input jack and converts it to the correct fixed voltage for the chip.

Basic boards typically run at 5V or 3.3V, though some are designed to run off batteries and will accept voltages between 5V and 3.3V and even down to 1.8V. Basic boards might draw anywhere from a few microwatts to maybe a watt or two. The lower the wattage, the longer your device will run from a battery. A well-designed basic board can run for months or years from a couple of AA batteries.

Advanced boards tend to require 3.3V or 1.8V. The processor chips themselves may run at even lower internal voltages of 1.1V or 0.7V. These lower voltages help reduce power consumption at very fast computing speeds. Even at these reduced voltages, expect typical power consumption to be in the hundreds of milliwatts up to tens of watts. That translates to hours or days of runtime from standard AA batteries.

Interacting

Computers are much more fun when we can hook them up to things and make those things smart. Most boards have at least simple inputs and outputs (I/O) for interfacing with a wealth of signals in the real world. Almost every board can handle basic digital voltages and signals. Many boards can also handle analog voltages, which can be anything from zero volts up to the chip’s power supply voltage.

Basic boards have at least digital I/O, which can be enhanced with many capabilities to expand what the board can do, such as reading or writing data to an SD card, or communicating with other devices using protocols like I2C, SPI, or CAN. Basic digital I/O can be reconfigured to handle different kinds of signals and may also include timer or counter functionality.

Many basic boards have the ability to convert a signal that is between 0V and the supply voltage into a digital representation of that voltage, called “Analog to Digital Conversion.” Many sensors and components like potentiometers generate analog voltages that must be converted into useful digital information, which is where an analog to digital converter comes in handy. Occasionally basic boards will also have a “Digital to Analog” converter, which generates an output voltage that can be between 0V and the supply voltage.

Advanced boards usually have everything that basic boards have plus some great extras. Since these boards are basically computers on a chip, they tend to also have a more desktop computer-like, built-in peripheral set that can include HDMI or other video, audio in and out, eSATA for hard drives, external memory, USB host, Ethernet, etc.

Communicating

Sometimes we want our board to talk to other boards, to a computer, or to the internet. This is done through a communicating interface.

Basic boards can at least send and receive data using one of the oldest and simplest inter-computer communication standards still in common use, RS232. This was the way that everything connected before USB came around. Now many basic boards also have USB or Bluetooth communication interfaces as well.

With advanced boards, connecting things to Wi-Fi or the internet is more sophisticated than simple board-to-board communication. Advanced boards have the extra memory and computing power required to process TCP/IP and other data passed along via Ethernet or Wi-Fi interface electronics.

Mounting

Well-designed boards include some way to mount the board to your project. Typically this means the board has several mounting holes designed for screws. They should be spaced far enough away from any components or traces so that the head of the screw doesn’t contact anything electrical that could damage the board.

Advanced boards may also have grounding screws that connect the ground plane on a board to its metal case to reduce electrical noise and interference.