What is Arduino?

On their own website(www.arduino.cc) the developers of Arduino term it as "an open-source electronics platform based on easy-to-use hardware and software". So, the word Arduino comes with a lot of meaning depending on where it is used. Arduino refers to a range of microcontroller boards, an IDE and a programming language. In this article, our focus is mainly on the microcontroller board.

The Arduino microcontroller boards are mainly based on the Atmel AVR MCU series. Arduinos are very beginner friendly yet flexible enough for expert's usage. The boards' main purpose is for prototyping. However, they are finding application in some industries. They come with various means of programming and debugging.

Apart from its ease of use, the boards are relatively cheap; they have become very popular due to this. Therefore, it is fairly easy to get support from the community when you get stuck at a point. The Arduino language is a dialect of C/C++. This means it is largely based on those languages. Most C/C++ code will run on Arduinos with little fiddling.

Arduinos come in various form factors to address various needs. They include: Uno, Leonardo, Nano, Micro, Mini, Mega, Zero, Due, M0 Pro, MKR Vidor and many others that can be seen on their official website.

Arduino Uno

The most popular of these is the Arduino Uno. The Uno is beginner friendly. Arduino Uno is a microcontroller board based on the ATmega328P. It has 14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, a 16 MHz quartz crystal, a USB connection, a power jack, an ICSP header and a reset button. It contains everything needed to support the microcontroller; it only needs to be connected to a computer with a USB cable or powered with an AC-to-DC adapter or battery to get started. It can be tinkered with without worrying much about doing something wrong. The worst case scenario is that the chip gets fried and it can replaced for a few dollars, well in our case cedis.

arduino Uno

Arduino Uno Specs

Microcontroller ATmega328P

Operating Voltage 5V

Input Voltage(recommended) 7-12V

Input Voltage(limit) 6-20V

Digital I/O Pins 14 (of which 6 provide PWM output)

PWM Digital I/O Pins 6

Analog Input Pins 6

DC Current per I/O Pin 20 mA

DC Current for 3.3V Pin 50 mA

Flash Memory 32KB (ATmega328P) of which 0.5KB used by bootloader

SRAM 2KB (ATmega328P)

EEPROM 1KB (ATmega328P)

Clock Speed 16 MHz


Length 68.6 mm

Width 53.4 mm

Weight 25 g

The Arduino Lilypad

The Lilypad which is specially designed for wearables development is also a commonplace for those who fancy that kind of environment. There are two variants of this: the low power version which is built around the ATmega168 and there is one built around the ATmega328V. This board has a circular formfactor.

This makes for easy integration into wearable projects. It is just an Uno in a circular shape in many regards.

arduino lilypad

Arduino Lilypad Specs

Microcontroller ATmega168 or ATmega328V

Operating Voltage 2.7V-5.5V

Input Voltage 2.7V-5.5V

Digital I/O Pins 14

PWM Channels 6

Analog Input Channels 6

Flash Memory 16KB (of which 2KB used by bootloader)


EEPROM 512 bytes

Clock Speed 8 MHz

Arduino Mega 2560

The MEGA 2560 is built for more complex projects. With 54 digital I/O pins, 16 analog inputs and a plethora of high-end computational specs, it can be considered as an Uno on steroids. According to arduino.cc, it is the recommended board for use in 3D printers and robotics projects. It is almost as beginner friendly as the Uno but for physical size.

It is based on the beefier Atmega 2560 with a flash memory of 256KB compared with the relatively meagre 32KB of the Uno.

arduino mega 2560

Arduino Mega 2560 Specs

Microcontroller ATmega2560

Operating Voltage 5V

Input Voltage(recommended) 7V-12V

Input Voltage(limit) 6-20V

Digital I/O Pins 54 (of which 15 provide PWM output)

Analog Input Pins 16

DC Current per I/O Pin 20 mA

DC Current for 3.3V Pin 50 mA

Flash Memory 256KB of which 8KB used by bootloader



Clock Speed 16 MHz


Length 101.52 mm

Width 53.3 mm

Weight 37 g

Arduino MKR Vidor 4000

There's the Arduino MKR Vidor 4000. It's targeted at applications in IoT. It is highly customizable. This allows the designer to integrate it into his/her work. The MKR VIDOR 4000 is highly configurable and powerful, and it can perform high-speed digital audio and video processing.

The hardware comes an 8 MB SRAM; a 2 MB QSPI Flash chip — 1 MB allocated for user applications; a Micro HDMI connector; an MIPI camera connector; and Wifi & BLE powered by U-BLOX NINA W10 Series. It also includes the classic MKR interface on which all pins are driven both by SAMD21 and FPGA. It also has a Mini PCI Express connector with up to 25 user programmable pins.

Since it's almost barebone in some sense, it requires some advanced programming expertise and microcontroller knowledge to handle. It is not very beginner friendly; though that assertion is relative. There are other MKR family members like the MKR GSM and WAN.

Arduino MKR Vidor 4000


FPGA Intel Cyclone 10CL016 - Mini PCI Express port with programmable pins

Camera connector MIPI camera connector

Circuit Operating Voltage 3.3V

PMW Pins All

UART Up to 7 (depends on FPGA configuration)

SPI Up to 7 (depends on FPGA configuration)

I2C Up to 7 (depends on FPGA configuration)

Analog Input Pins n/a

Analog Output Pins n/a

External Interrupts n/a

DC Current per I/O Pin 4mA or 8mA

Flash Memory 2MB



Clock Speed 48 MHz - up to 200 MHz

Video Output Micro HDMI

ATSAMD21 Variant

Microcontroller Microchip ATSAMD21 (Arm Cortex-M0+ processor)

Wi-Fi U-blox Nina-W102

Supported Battery(*) Li-Po Single Cell, 3.7V, 700mAh Minimum

Digital I/O Pins 22

PMW Pins 12 (0, 1, 2, 3, 4, 5, 6, 7, 8, 10, A3 - or 18 -, A4 -or 19)



I2C 1

Analog Input Pins 7 (ADC 8/10/12 bit)

Analog Output Pins 1 (DAC 10 bit)

External Interrupts 8 (0, 1, 4, 5, 6, 7, 8, A1 -or 16-, A2 - or 17)

Flash Memory 256 KB



Clock Speed 32.768 kHz (RTC), 48 MHz


Full-Speed USB Device and Embedded Host Included

Length 83 mm

Width 25 mm

Weight 32 g

The Arduino YÚN

The is a board built for the IoT space. It has a microcontroller and a microprocessor on board. The microprocessor runs a Linux OS. This enables it to run advanced applications and network connections. Connecting to a wireless or wired network is easy with a Yún Web Panel.

It has an Ethernet port and WiFi antennas for easy connection to your LAN and WLAN. Given its flexibility, it requires some knowledge in dealing with the Linux OS to squeeze all the computing juice out of it.

arduino YÚN

AVR Arduino microcontroller

Microcontroller ATmega32U4

Operating Voltage 5V

Input Voltage 5V

Digital I/O Pins 20

PMW Output 7

Analog I/O Pins 12

DC Current per I/O Pin 40 mA on I/O Pins; 50 mA on 3,3 Pin

Flash Memory 32KB (of which 4 KB used by bootloader)



Clock Speed 16 MHz

Linux Microprocessor

Microcontroller Atheros AR9331

Architecture MIPS

Operating Voltage 3.3V

Ethernet 802.3 10/100Mbit/s

WiFi 802.11b/g/n 2.4 GHz

USB Type 2.0 Host

Card Reader Micro-SD

Flash Memory 16MB


Clock Speed 400 MHz


Based on the boards we've had an overview of, the Uno is the most versatile for the purpose of learning IoT development. Thus its largely the one we are going to use unless otherwise stated.

Rene Novor X.K
Mor-Lan Technologies.



At Mor-Lan Technologies, we aim at developing the best solution to the most pressing problems we face here in Ghana and Africa at large when it comes to information technologies. Producing high quality products is our focus here!