Arduino and Teensy microcontroller boards

(Arduino and Teensy : Last updated by Benjamin on September 30, 2022)

A microcontroller is an integrated circuit that combines almost all the elements of a computer: processor, memories, storage, input-output interfaces, etc. The microprocessor in your computer needs all of these same peripherals to work, but they are external. It also requires an operating system. Microcontrollers gather the advantages of tiny size and energy saving. They are found everywhere, whenever a very specialized task needs to be accomplished. They are found in all embedded systems: household appliances, cars, toys, robots, drones, not to mention planes, where they are numerous, without the pilot even suspecting it. The devices described on this Website use Arduino and Teensy development boards.

Arduino boards

They are many and varied. Some are dedicated to makers for prototyping simple projects, while others are instead reserved for professionals and industry. See here the official Arduino Website. Many microcontrollers are used, 8-bit or 32-bit, sometimes even dual-core, clock frequencies range from 16 to 480 MHz. Some boards include communication extensions, Wifi, Bluetooth, GSM, CAN bus, or various sensors, inertia, pressure, temperature, proximity, etc.

But the three most straightforward boards, Mega 2560, Uno, and Nano, remain the best known and the most widespread, all equipped with an 8-bit 16 MHz microcontroller with 5 volts GPIO pins.

Their open architecture (open hardware) has allowed the emergence of many clones. This has contributed to their popularity.

Another critical element in the success of Arduino boards is their development environment, the Arduino I.D.E. (for “Integrated Development Environment”). This free, open-source software environment makes the complexity of the microcontroller transparent to the user, allowing beginners to write their first program in seconds and simultaneously learn the C/C ++ programming language basics. Without worrying about the complex mechanisms implemented within the microcontroller. A bit like using your computer without worrying about the microprocessor it contains.

There are other development environments for Arduino boards, more aimed at professionals. Nothing beats the Arduino IDE in ease of use.

Another fundamental point of this success is the existence of innumerable free and open-source libraries. These libraries are extensions of the Arduino IDE, which allow you to perform specific tasks, usually related to a hardware extension. For example, to use a screen, you must download a library from the Internet and include it in the program (the “sketch” in Arduino jargon). The manufacturer of the display may provide this library to drive it. Each hardware extension has its library (its driver, in other words).

Arduino
Figure 1 : From left to right, original Arduino Mega 2560 and Uno boards, and a clone of a nano board
Arduino Uno Rev3

This is the most popular; see here. It has an ATmega328P microcontroller with 32KB of flash memory for programs, 2KB of SRAM RAM, and 1KB EEPROM. The board has 14 digital inputs/outputs pins (of which 6 provide PWM output) and six analog input pins. The Arduino Uno provides one serial port, one SPI bus, and one I2C bus.

Countless expansion boards are commercially available for the Arduino Uno, known as “shields.” Shields are designed to be plugged on top of an Arduino board, extending its capabilities. These shields for Arduino Uno have become a standard and have contributed to the extraordinary reputation of Arduino boards. There are shields for Wifi, Bluetooth, Ethernet, GPS, servomotors, CAN bus, micro-SD reader, etc. There is no limit to the imagination of shield designers. For our Micro-EMS, we made a personalized shield from a protoshield (blank shield, without any components).

Arduino Mega 2560

It’s a bit like Uno’s big sister; see here. It has an ATmega2560 microcontroller, 256KB of flash memory for programs, 8KB of SRAM RAM, and a 4KB EEPROM. The board has 54 digital inputs/outputs pins (of which 15 provide PWM) and 16 analog input pins. The Arduino Mega has four serial ports, one SPI bus, and one I2C bus. All shields designed for the Uno board are compatible with the Mega.

Arduino nano

The classic Nano is the smallest Arduino board; see here. Countless clones are available. The specs are the same as the Arduino Uno, with the same ATmega328P microcontroller, but with a reduced size, as seen in figure 1.

The newer Arduino Nano Every model follows the same small footprint logic. It has an 8-bit ATMega4809 microcontroller with 48 KB of flash memory and 6 KB of SRAM.

There are other, even newer, very different Arduino Nano boards, apart from the same small size: Nano 33 BLE and Nano 33 BLE Sense. They are much more powerful than the “historical” Nano because they are equipped with a 32-bit 64 MHz microcontroller, much larger flash and SRAM memories, 3.3 volts logic, integrated Bluetooth, and various sensors, especially inertial.

Teensy boards

See here the official PJRC Website. We will only consider the most recent ones, Teensy 3.6, 4.0, and 4.1. They are all equipped with a 32-bit microcontroller with 3.3v logic. In addition to their considerable power, compared with 8-bit Arduino boards, these boards have two advantages over other 32-bit boards. They share the same IDE as 8-bit Arduino boards (with a software add-on called Teensyduino), and they benefit from a vast collection of libraries specially optimized for them. They are therefore programmed precisely the same way as Arduino boards. Their cost is of the same order of magnitude.

Figure 2: From left to right, an Arduino Nano board, a Teensy 4.0, and a Teensy 3.6.
The Teensy 4.1, not shown in this photo, shares the same format as the Teensy 3.6
Teensy 3.6

ARM Cortex-M4 at 180 MHz
Float point math unit, 32 bits only
1024 Flash, 256K RAM, 4K EEPROM
64 digital input/output pins, 22 PWM output pins
25 analog input pins, 2 analog output pins, 11 capacitive sense pins
6 serial, 3 SPI, 4 I2C ports
2 CAN bus
1 SDIO (4 bit) native SD Card port
RTC for date/time

Teensy 4.0

ARM Cortex-M7 at 600 MHz
Float point math unit, 64 & 32 bits
1984K Flash, 1024K RAM (512K tightly coupled), 1K EEPROM (emulated)
40 digital input/output pins, 31 PWM output pins
14 analog input pins
7 serial, 3 SPI, 3 I2C ports
3 CAN Bus (1 with CAN FD)
RTC for date/time

Teensy 4.1

ARM Cortex-M7 at 600 MHz
Float point math unit, 64 & 32 bits
7936K Flash, 1024K RAM (512K tightly coupled), 4K EEPROM (emulated)
55 digital input/output pins, 35 PWM output pins
18 analog input pins
8 serial, 3 SPI, 3 I2C ports
3 CAN Bus (1 with CAN FD)
1 SDIO (4 bit) native SD Card port
Ethernet 10/100 Mbit with DP83825 PHY
RTC for date/time

Which board to choose?

Simply put, we can say that an 8-bit / 16 MHz Arduino Uno or Nano board is well suited to manage a few sensors and actuators, for example to control a trim servo, make a tachometer, or a fuel computer. An Arduino Mega board is enough to be the heart of an EMS (Engine Monitoring System). For applications requiring more computing power, such as displaying multiple gauge charts or a fluid artificial horizon while monitoring many different sensors and managing the communications between several devices over a CAN bus and several serial lines, Teensy boards are much better suited, in particular Teensy 4.1.

Leave a Reply

Your email address will not be published. Required fields are marked *

The maximum upload file size: 5 MB. You can upload: image, document, text, archive. Drop files here