ARM Processor Features and Comparison
ARM Processor Features and Comparison
of EIE
1
EI1601 Industrial Internet of Things Dept. of EIE
Thumb-2 Technology: Thumb-2 Technology was introduced in 2003 and was used
to create variable-length instruction sets. It extends the 16-bit instructions of initial
Thumb technology to 32-bit instructions. It has better performance than previously
used Thumb technology.
5. One-Cycle Execution Time: ARM processor is optimized for each instruction
on the CPU. Each instruction is of a fixed length that allows time for fetching future
instructions before executing the present instructions. ARM has CPI (Clock Per
Instruction) of one cycle.
6. Pipelining: Processing of instructions is done in parallel using pipelines.
Instructions are broken down and decoded in one pipeline stage. The channel
advances one step at a time to increase throughput (rate of processing).
7. A large number of Registers: A large number of registers are used in ARM
processors to prevent large amounts of memory interactions. Records contain data
and addresses. These act as a local memory store for all operations.
ARM x86
ARM uses Reduced Instruction Set x86 uses Complex Instruction Set
Computing Architecture (RISC). Architecture (CISC).
2
EI1601 Industrial Internet of Things Dept. of EIE
ARM x86
ARM processors require fewer registers, x86 processors require less memory,
but they require more memory. but more registers.
ARM processors use the memory which is x86 processors require some extra
already available to them. memory for calculations.
3
EI1601 Industrial Internet of Things Dept. of EIE
4
EI1601 Industrial Internet of Things Dept. of EIE
5
EI1601 Industrial Internet of Things Dept. of EIE
7
EI1601 Industrial Internet of Things Dept. of EIE
Characteristics of IoT
Massively scalable and efficient
IP-based addressing will no longer be suitable in the upcoming future.
An abundance of physical objects is present that do not use IP, so IoT is made
possible.
Devices typically consume less power. When not in use, they should be
automatically programmed to sleep.
A device that is connected to another device right now may not be connected in
another instant of time.
Intermittent connectivity – IoT devices aren’t always connected. In order to
save bandwidth and battery consumption, devices will be powered off
periodically when not in use. Otherwise, connections might turn unreliable and
thus prove to be inefficient.
8
EI1601 Industrial Internet of Things Dept. of EIE
Each IoT device has a unique identity (e.g., an IP address). This identity is helpful
in communication, tracking and to know status of the things. If there is no
identification then it will directly affect security and safety of any system because
without discrimination we can’t identify with whom one network is connected or
with whom we have to communicate. So there should be clear and appropriate
discrimination technology available between IoT networks and devices.
Safety
Sensitive personal details of a user might be compromised when the devices are
connected to the Internet. So data security is a major challenge. This could cause a
loss to the user. Equipment in the huge IoT network may also be at risk. Therefore,
equipment safety is also critical.
Architecture
It should be hybrid, supporting different manufacturer’s products to function in the
IoT network.
As a quick note, IoT incorporates trillions of sensors, billions of smart systems, and
millions of applications.
Application Domains
IoT is currently found in four different popular domains:
1) Manufacturing/Industrial business - 40.2%
2) Healthcare - 30.3%
3) Security - 7.7%
4) Retail - 8.3%
Modern Applications
Smart Grids and energy saving
Smart cities
Smart homes/Home automation
Healthcare
Earthquake detection
Radiation detection/hazardous gas detection
Smartphone detection
Water flow monitoring
Traffic monitoring
Wearables
Smart door lock protection system
Robots and Drones
Healthcare and Hospitals, Telemedicine applications
Security
Biochip Transponders (For animals in farms)
Heart monitoring implants (Example Pacemaker, ECG real time tracking)
Agriculture
Industry
9
EI1601 Industrial Internet of Things Dept. of EIE
Advantages of IoT
Improved efficiency and automation of tasks.
Increased convenience and accessibility of information.
Better monitoring and control of devices and systems.
Greater ability to gather and analyze data.
Improved decision-making.
Cost savings.
Disadvantages of IoT
Security concerns and potential for hacking or data breaches.
Privacy issues related to the collection and use of personal data.
Dependence on technology and potential for system failures.
Limited standardization and interoperability among devices.
Complexity and increased maintenance requirements.
High initial investment costs.
Limited battery life on some devices.
Concerns about job displacement due to automation.
Limited regulation and legal framework for IoT, which can lead to
confusion and uncertainty.
Function of Computer
10
EI1601 Industrial Internet of Things Dept. of EIE
Computers
IOT Devices
3. It deals with large scale networks. It deals with small scale networks.
12
EI1601 Industrial Internet of Things Dept. of EIE
S.
No. IIOT IOT
8. It having very long life cycle. It having short product life cycle.
INTRODUCTION TO ARDUINO
13
EI1601 Industrial Internet of Things Dept. of EIE
The key specs include 2kB SRAM memory capability, 32kB flash storage space,
and 1KB EEPROM chip along with UART, and I2C SPI communication
capabilities which can also be replaced in case of any problem.
It is a great choice for anyone wanting to get into DIY electronics and
programming. It can be used for projects both simple and complex.
2. Arduino Nano
The Arduino Nano is highly popular among developers due to its small size yet
considerable capabilities. It shares many of the same features as the UNO, but in a
smaller form, making it great for use on breadboards and other tight spaces. The main
differences from the larger model include:
There is no onboard DC power jack connection. Instead, it relies on a mini USB
port, which also handles UART bridge chip duties with FTDI’s dedicated FT232
converter included. This means there’s no need for the ATMega16U2 chipset.
This combination provides powerful control at both modest cost and minimum
space requirements, allowing creative designs to come within reach.
3. Arduino Micro
The Arduino Micro offers features similar to the Leonardo but is significantly smaller
and only has 12 analog I/O pins together with its 20 digital ones.
This board measures just 18mm wide by 48mm long. It is one of the smallest
boards ever created by Arduino. You can create a keyboard, mouse, or other HID
devices that require minimal space with this Arduino board.
It comes equipped with an ATmega32U4 microcontroller containing 2.5kB
SRAM, 32KB flash memory, and 1 KB EEPROM for data storage along with
UART, IC2 & SPI communication protocols. It also has special built-in functions
such as HID connectivity.
4. Arduino Leonardo
The Arduino Leonardo is different from the other boards. Given below are its
specifications.
It uses an ATmega32U4 chip in place of ATMega328P. It offers more pins for IO
(20), PWM (7), and analog input signals (12).
Instead of needing a second processor or a USB to UART bridge chip, this board
has built-in USB communication. This allows it to connect directly with computers
as either Human Interface Devices or Virtual COM port serial/CDC ports. This
virtual connection enables us to program our Leonardo via its bootloader.
5. Arduino Micro
Arduino Micro is perfect for those who need the power of an Arduino Leonardo in a
breadboard-friendly size.
14
EI1601 Industrial Internet of Things Dept. of EIE
It offers all of the same functionalities as its larger counterpart, with only one slight
difference.
It doesn’t have a DC input jack. However, you can still use this tiny board to act
like an HID or Virtual COM port device just as you would on any other Leonardo
model.
To understand the concept of Arduino boards and the different types of Arduino
even better, you can take this comprehensive Arduino course.
6. Arduino Mega2560 Rev3
The Arduino Mega 2560 stands out amongst the other boards.
It is designed for those situations which require many I/O or peripherals.
With a powerful ATMega2560 processor, this board boasts an impressive 54 I/O
pins (15 of them can be used as PWM outputs), 16 analog inputs, and 4 UARTs.
Furthermore, there is more flash storage and SRAM on this basic Arduino than
any other.
Due to its capability, it has grown in popularity among open-source CNC makers
and 3D printer builders.
It can be easily implemented into various open-source Programmable Logic
Controllers projects.
7. Arduino Nano 33 BLE
The Arduino Nano 33 BLE is an incredibly powerful board with the same form
factor as its predecessor, the Arduino Nano.
Featuring Nordic Semiconductors’ advanced NRF52480 32-bit ARM Cortex-M4
processor running at 64MHz and 1MB flash plus 256KB SRAM memory capacity,
it’s a great choice for applications that need more processing power and storage
capabilities than traditional boards provide.
The most impressive attribute of this device has to be Bluetooth Low Energy
(BLE) support.
It allows users to leverage both client/host configurations with their compatible
devices while taking advantage of energy efficiency benefits offered by connected
wearables development.
8. Arduino Due
The Arduino Due is a more powerful upgrade of the popular Arduino Mega with its
54 Digital I/Os and 12 Analog inputs.
Running at 84MHz, this 3.3V-only board offers an Atmel SAM3x8E Arm Cortex-
M3 processor along with USB OTG, DAC, and JTAG interfaces for extra
connectivity options.
It’s important to note that this device’s I/O pins are not 5V tolerant so be sure you
keep that in mind when getting started on your project.
15
EI1601 Industrial Internet of Things Dept. of EIE
16
EI1601 Industrial Internet of Things Dept. of EIE
The Arduino MKR WiFi 1010 is a great option if you are looking for something small
and simple to build your own basic IoT (Internet of Things) project or pico-network.
It has the NINA-W102 module, which allows it to communicate with other systems,
as well as an ECC5087 crypto chip that keeps data secure. The board also comes
complete with an RGB LED. All of this can be powered by nothing than a LiPo
battery.
15. Arduino MKR NB 1500
The Arduino MKR NB 1500 is the ideal solution for projects requiring narrowband
communication in remote locations where internet access isn’t available or when
power to your device can be a challenge. The on-board SARA-R410M-02B module
works with an array of Cat M1/NB1 bands. This makes it suitable for field
deployments and monitoring devices that rely upon solar energy sources.
Additionally, its on-board battery charger plus connector creates an easy way to add
external antenna support.
Other Types of Arduino Boards
The following are some of the other Arduino types.
16. Arduino Diecimila
The Arduino Diecimila microcontroller board enables users to connect their device to
a computer via a USB cable while also using batteries or AC-DC adapters to activate
it. It is powered by the ATmega168 and has a range of features including:
14 digital I/O pins (6 of which can be used for PWM outputs) and 6 analog
inputs
A USB connection
16 MHz crystal oscillator and an ICSP header
Reset button and power jack
The name ‘Diecimila’ literally means 10,000 in Italian. This particular version of the
USB Arduino reflects the production of over 10 thousand boards. It signifies that these
boards were constructed from the same set within its group. This makes it one of the
most up-to-date products.
17. RedBoard Arduino Board
The RedBoard Arduino board is an easy-to-use device that can be programmed with
the Arduino IDE using a Mini-B USB cable. It is compatible with Windows 8, so you
don’t need to modify your security settings for it to work properly. Furthermore, its
flat design and constant performance because of the FTDI or USB chip make it perfect
for any project.
18. Arduino Robot
17
EI1601 Industrial Internet of Things Dept. of EIE
Arduino Robot is the first robotic platform to feature two microcontroller boards, a
motor board for controlling motors and a control board utilized as an interface to read
sensors.
This small all-in-one computer is programmed with code via the same language
used by Arduino Leonardo, ATmega32u4.
With several strategically placed pins connected directly to on-board
actuators/sensors, this robot has limitless possibilities of use.
Additional features, such as speakers, colour screens, buttons (5), digital
compass (1), SD card reader (1), potentiometers (2) or floor sensors can be
hooked up.
19. Arduino Esplora
The Arduino Esplora is a special type of computer board full of different kinds of
inputs and outputs.
It is designed to look like a videogame controller, so it already has light sensors,
buttons, microphones, and other features built-in. This makes it easy for you to
connect components, such as actuators or sensors with ease.
The output includes an LED that lights up three colors and multiple buzzers which
are controlled using the same software used for most Arduinos (an IDE).
It also has its own library. This simplifies how data from both sensory devices and
mechanical parts can be read/written quickly.
20. Arduino Ethernet
The Arduino Ethernet board is powered by the ATmega328 microcontroller, which
has 5 analog pins, 14 digital I/O pins (including a reset button), and an RJ45
connection for hooking up to the internet via an Ethernet shield. It also has other
components, such as a crystal oscillator, power jack, and ICSP header.
Features of Arduino Boards
The following are some of the key features of Arduino boards.
Microcontroller: It acts as Arduino’s “brain” by handling all processing tasks and
providing access to input/output pins (I/O).
Power Supply Source: An external power source, such as a battery or USB port
is needed. Some models also offer alternative methods, like solar panels or AC
adapters that allow more flexibility when powering up.
Digital & Analog I/O Pins: General-purpose digital inputs and outputs read
signals from sensors or buttons while analogs enable complex elements like
distance sensors or motor controllers to connect easily.
USB Interface (e.g., FTDI): The serial communication protocol used by most
Arduinos is UART over a mini-USB port. It enables connection with computers
for simple data transfer tasks and programming.
18
EI1601 Industrial Internet of Things Dept. of EIE
Clock Speed & Memory Capacity: Higher clock speeds result in faster
performance while larger memory capacities enable more complex projects. These
are important considerations when selecting an appropriate Arduino model.
The setup () function is called when a sketch starts. Use it to initialize the
variables, pin modes, start using libraries, etc. The setup function will only run
once, after each power up or reset of the Arduino board.
After creating a setup() function, which initializes and sets the initial values,
the loop() function does precisely what its name suggests, and loops consecutively,
allowing your program to change and respond. Use it to actively control the
Arduino board.
19
EI1601 Industrial Internet of Things Dept. of EIE
Unsigned
void Boolean char byte int Unsigned int word
char
void
The void keyword is used only in function declarations. It indicates that the
function is expected to return no information to the function from which it was
called.
Local Variables
Variables that are declared inside a function or block are local variables. They can
be used only by the statements that are inside that function or block of code. Local
variables are not known to function outside their own. Following is the example
using local variables −
Void setup () {
Void loop () {
20
EI1601 Industrial Internet of Things Dept. of EIE
int x , y ;
int z ; Local variable declaration
x = 0;
y = 0; actual initialization
z = 10;
}
Global Variables
Global variables are defined outside of all the functions, usually at the top of the
program. The global variables will hold their value throughout the life-time of your
program.
A global variable can be accessed by any function. That is, a global variable is
available for use throughout your entire program after its declaration.
Int T , S ;
float c = 0 ; Global variable declaration
Void setup () {
Void loop () {
int x , y ;
int z ; Local variable declaration
x = 0;
y = 0; actual initialization
z = 10;
}
Arithmetic Operators
Comparison Operators
Boolean Operators
Bitwise Operators
Compound Operators
21
EI1601 Industrial Internet of Things Dept. of EIE
This means that it takes very little current to switch the input pin from one
state to another. This makes the pins useful for such tasks as implementing a
capacitive touch sensor or reading an LED as a photodiode.
Pins configured as pinMode(pin, INPUT) with nothing connected to them, or
with wires connected to them that are not connected to other circuits, report
seemingly random changes in pin state, picking up electrical noise from the
environment, or capacitively coupling the state of a nearby pin.
Pull-up Resistors
Pull-up resistors are often useful to steer an input pin to a known state if no
input is present. This can be done by adding a pull-up resistor (to +5V), or a pull-
down resistor (resistor to ground) on the input. A 10K resistor is a good value for a
pull-up or pull-down resistor.
pinMode() Function
The pinMode() function is used to configure a specific pin to behave either as
an input or an output. It is possible to enable the internal pull-up resistors with the
mode INPUT_PULLUP. Additionally, the INPUT mode explicitly disables the
internal pull-ups.
Void setup () {
pinMode (pin , mode);
22
EI1601 Industrial Internet of Things Dept. of EIE
pin − the number of the pin whose mode you wish to set
mode − INPUT, OUTPUT, or INPUT_PULLUP.
Example
int button = 5 ; // button connected to pin 5
int LED = 6; // LED connected to pin 6
void setup () {
pinMode(button , INPUT_PULLUP);
// set the digital pin as input with pull-up resistor
pinMode(button , OUTPUT); // set the digital pin as
output
}
void setup () {
If (digitalRead(button ) == LOW) // if button pressed {
digitalWrite(LED,HIGH); // turn on led
delay(500); // delay for 500 ms
digitalWrite(LED,LOW); // turn off led
delay(500); // delay for 500 ms
}
}
digitalWrite() Function
The digitalWrite() function is used to write a HIGH or a LOW value to a digital
pin. If the pin has been configured as an OUTPUT with pinMode(), its voltage will
be set to the corresponding value: 5V (or 3.3V on 3.3V boards) for HIGH, 0V
(ground) for LOW. If the pin is configured as an INPUT, digitalWrite() will enable
(HIGH) or disable (LOW) the internal pullup on the input pin. It is recommended to
set the pinMode() to INPUT_PULLUP to enable the internal pull-up resistor.
If you do not set the pinMode() to OUTPUT, and connect an LED to a pin,
when calling digitalWrite(HIGH), the LED may appear dim. Without explicitly
setting pinMode(), digitalWrite() will have enabled the internal pull-up resistor,
which acts like a large current-limiting resistor.
Example
int LED = 6; // LED connected to pin 6
void setup () {
pinMode(LED, OUTPUT); // set the digital pin as output
}
void setup () {
digitalWrite(LED,HIGH); // turn on led
delay(500); // delay for 500 ms
digitalWrite(LED,LOW); // turn off led
delay(500); // delay for 500 ms
}
analogRead( ) function
Arduino is able to detect whether there is a voltage applied to one of its pins and
report it through the digitalRead() function. There is a difference between an on/off
sensor (which detects the presence of an object) and an analog sensor, whose value
continuously changes. In order to read this type of sensor, we need a different type
of pin.
In the lower-right part of the Arduino board, you will see six pins marked “Analog
In”. These special pins not only tell whether there is a voltage applied to them, but
also its value. By using the analogRead() function, we can read the voltage applied
to one of the pins.
This function returns a number between 0 and 1023, which represents voltages
between 0 and 5 volts. For example, if there is a voltage of 2.5 V applied to pin
number 0, analogRead(0) returns 512.
analogRead() function Syntax
analogRead(pin);
Example
void setup() {
[Link](9600); // setup serial
}
void loop() {
val = analogRead(analogPin); // read the input pin
[Link](val); // debug value
24
EI1601 Industrial Internet of Things Dept. of EIE
analogReference() Function
Configures the reference voltage used for analog input (i.e. the value used as the top
of the input range). The options are −
Example
void setup() {
[Link](9600); // setup serial
analogReference(EXTERNAL); // the voltage applied to
the AREF pin (0 to 5V only)
// is used as the reference.
}
void loop() {
val = analogRead(analogPin); // read the input pin
[Link](val); // debug value
}
Arduino IDE
The Arduino IDE is an open-source software, which is used to write and upload code
to the Arduino boards. The IDE application is suitable for different operating systems
25
EI1601 Industrial Internet of Things Dept. of EIE
The program or code written in the Arduino IDE is often called as sketching. We need
to connect the Genuino and Arduino board with the IDE to upload the sketch written
in the Arduino IDE software. The sketch is saved with the extension '.ino.'
Shield is defined as the hardware device that can be mounted over the board to
increase the capabilities of the projects. It also makes our work easy. For example,
Ethernet shields are used to connect the Arduino board to the Internet.
The pin position of the shields is similar to the Arduino boards. We can also connect
the modules and sensors to the shields with the help of the connection cable.
Arduino motor shields help us to control the motors with the Arduino board.
Arduino shields are boards that can be plugged on top of the Arduino PCB extending
its capabilities. Shields are easy to mount, and cheap to produce. These accessory
hardware items allow you to control Arduino projects with your phone, with a blue
tooth shield or even a touch screen to add a visual component. Within this section,
there is a large database of shield makers to choose from, as well as, some examples
of particularly interesting shields.
Arduino Boards
Arduino is an easy-to-use open platform to create electronics projects. Arduino boards
play a vital role in creating different projects. It makes electronics accessible to non-
engineers, hobbyists, etc.
The various components present on the Arduino boards are Microcontroller, Digital
Input/output pins, USB Interface and Connector, Analog Pins, Reset Button,
Power button, LED's, Crystal Oscillator, and Voltage Regulator. Some
components may differ depending on the type of board.
The most standard and popular board used over time is Arduino UNO. The
ATmega328 Microcontroller present on the UNO board makes it rather powerful than
other boards. There are various types of Arduino boards used for different purposes
26
EI1601 Industrial Internet of Things Dept. of EIE
and projects. The Arduino Boards are organized using the Arduino (IDE), which can
run on various platforms. Here, IDE stands for Integrated Development Environment.
Arduino sensors
Arduino is the open-source platform used for making custom electronics projects.
Before learning about the Arduino Sensors, lets first understand the sensors as a
general term.
A sensor and electronic devices always work together. The output signal is easily
readable by humans.
Nowadays, Sensors are used in daily lives. For example, controlling the brightness of
the lamp by touching its base, etc. The use of sensors is expanding with new
technologies.
Actuator
Mechanical/Electro-Mechanical device
Converts energy into motion
Mainly used to provide controlled motion to other components
Servo motor
High precision motor,
Provides rotary motion from 0 to 180 degree
3 wires in the servo motor
Black or darkest one to the ground
Red for power supply
Yellow for signal pin
Arduino library
Servo myservo;
27