top of page

How to start learning Embedded Systems : A complete roadmap

Updated: 5 days ago

Are you looking for how to learn embedded systems? Are you looking for a clear roadmap to start learning embedded systems? Are you a complete beginner and need no-fuss clear guidance on studying and experimenting with embedded systems

We’re going to cover all the above questions in this tutorial. And we’re going to see a clear roadmap to start learning embedded systems. We’re going to see what it takes for anyone to get started with embedded systems and what is the flow that one can follow if he or she wishes to excel in learning and developing embedded systems.

This tutorial is specially created for complete beginners to give the simplest guide to start learning embedded systems quickly and understand all that is there to learn about it. This tutorial will help you map your learning objectives based on where you are at this stage. Even if you’re in the middle of something like you understand a little bit of Arduino programming, this tutorial will help you shape your knowledge and is intended to provide guidelines to excel. So let’s get started.

[button link=”” type=”big” newwindow=”yes”] Download this tutorial as ebook Here[/button]

What is an embedded system?

An embedded system is a dedicated computerized system that can perform one dedicated task or similar associated tasks. Let’s take an example of a temperature controller. This type of temperature controller is very commonly used in a wide variety of manufacturing industries. The typical jobs of temperature controller are

  1. Read the temperature value

  2. Display the temperature value

  3. Configure a set point for temperature value

  4. If the temperature is below the setpoint, make the output device off

  5. If the temperature is above the setpoint, make the output device on

  6. Repeat the cycle

As you can see in the above steps, its obvious that we do not expect an embedded system to stop functioning. An embedded system is always running unless its power off or turned off by the user. So to create such a simple system what are the options we have?

  1. Analog + Digital Design

  2. Embedded Design

Analog Design

Now such a system like a temperature controller, can it be built using a simple analog circuit? Yes, of course, it can be developed. By using temperature sensors, analog to digital converter, the seven-segment display drives and a lot of conditioning circuits and digital timer circuits. We definitely can create such a system for the temperature controller, but it requires a lot of design efforts. Moreover, if we want to change anything or any element of this system, it’ll be very difficult to make changes as we’ll need to reconfigure a lot of component values itself. Even if you want to add some time delay or some timed operations, you’ll need to make a lot of changes to the system. So what is the option here?

The option is instead of creating a simple circuit design, make it using embedded system principles.

Embedded Design

An embedded design if very simple to build. All it will consist of is the microcontroller unit which will do the job of sensor reading, display driving and output device (relay) switching. How it does all of this, how it prints the value and how it reads the temperature sensor and all is controlled by software written inside the controller. An embedded controller can not function directly as compared to normal analog or digital circuits. Instead, an embedded microcontroller needs a program written in its memory which will do the job of controlling the devices. The microcontroller is a reconfigurable IC. The pins of the microcontroller can do the job of input or output or analog input and so on. Depending on the software written, the pins of the microcontroller can behave differently. In order to get excelled in microcontroller coding, we need to understand the microcontroller architecture. After studying the microcontroller architecture well, we can start writing the programs for it. But because of this big limitation, many people can not dive into embedded systems directly. And here the Arduino board comes into the picture. In order to program an Arduino board, we do not need any knowledge of the underlying hardware which is called the microcontroller Board. We’ll discuss the Arduino board in detail soon.

How an embedded system is built?

So, a system that is built using this type of microcontroller as the heart of the system is called an embedded system. An embedded system has all the related input and output devices interfaced directly with the microcontroller or connected to it via some driver circuit. Depending upon the application at hand, an embedded system may have few or all of the components shown in the below diagram.

Block Diagram Of Embedded System

Architecture Of Embedded System

What are the different components of Embedded Systems?

Just take a look at the above block diagram. It’s a very simple block diagram of an embedded system. Mind well, when I say simple, it really is. The block diagram hides almost everything that is complex and gives a bird eye view of an embedded system. The embedded systems block diagram shows mainly 3 components of the embedded system.

Inputs can be usually coming from switches or sensors. In the example of temperature controller, the inputs will be switches to accept the setpoint and the temperature sensor itself. Just like, a plant watering system will have input as a moisture level sensor.

Controller is the heart of an embedded system. A controller’s job is to process the given inputs and generate outputs. For a temperature controller, the job of the controller inside is to read the temperature value, read the switches. Now compare the temperature value with a set point, and control output devices. Controller cannot do any of these things out of the Box and every controller needs software sitting inside it to do these things. This creates a demand for software programming in embedded systems.

The most popular controllers used in embedded systems are

  1. Microcontroller

  2. Microprocessor

  3. PLDs (FPGA / CPLD)

  4. System on Chip (SoC)