Embedded Systems Course – Career path and free training

Skills required

Digital Logic Design and Digital Electronics Course

Digital Electronics forms the base of embedded systems. Understanding simple combinational arithmetic circuits like adders, multiplexers, and sequential circuits like counters is essential. As an embedded systems engineer, you’ll also need to be adept at all the different types of number systems and rules to perform operations on them. This is a basic and fundamental course in your embedded design journey.

Skills covered: Combinational Circuits Sequential Circuits Boolean Logic Number Systems Boolean Algebra

C Programming Course – Learn from scratch

A fruitful career in embedded systems can be built only if you have strong programming skills and are proficient with fundamental data structure concepts. It is strongly advised that you learn C and Data Structures before you learn Embedded C. In addition to basic topics like loops and conditional statements, this C programming course covers the following skills.

Skills covered: Pointers Structures Memory allocation

Arduino Course for Beginners – Learn from scratch

Optional Course The Arduino platform can help you get up-close and personal with basic electronics quite quickly. In no time you can get a taste of what it is like to work with development boards. You can also understand the working of basic sensors and some communication protocols. However, bear in mind, that this ease of set up comes at the expense of in-depth knowledge of an SoC. Nevertheless, if you have time and want to pick up a hobby that can have a positive impact on your embedded systems career, the Arduino is a good place to start.

Skills covered: Sensors Arduino

8085 Microprocessor Course – Learn from scratch

The 8085 is no longer used. However, it serves as a great way to enter the field of studying processors. The architecture is simple. The bus design is elementary. The Instruction Set is concise and easy to understand. We also want students to quickly pick up new processors and controllers and this is an exercise in trying to impart that flexibility. You should be able to cover the concepts taught in this course in less than a week of focussed study. Don’t dwell too much time on this though. We will pick up these concepts again in the ARM course.

Skills covered: 8-bit Microprocessor Assembly Language Programming Timing Diagrams External Memory Interfacing Multiplexed pins Interrupts

8051 Microcontroller Course

The original 8051 is no longer around but it’s IP cores are still found in some applications. This is an 8-bit microcontroller. Akin to the 8085 course, this course serves as a gateway to the world of SoC (System on Chips). The objective here is to understand the difference between microprocessors and microcontrollers. The internal components of the 8051 will give you a good understanding of how SoCs are designed. However, don’t take more than a week to study this as we will return to these concepts again in the ARM course.

Skills covered: 8-bit Microcontroller, Keil IDE, Banked Registers, I/O Interfacing

ARM Cortex-M course

ARM is perhaps the most popular microcontroller (or SoC to be pedantic) in the world. It is found in almost every device.

Skills covered:Embedded C SoC

Embedded Systems Course – Career path and free training FAQs

We are going to begin our journey into understanding embedded systems with an introduction to the field. It is an exciting field, especially if you heard about it through a deep love for robotics. But as we will see in this introductory article, there is so much more to it. If you wish to start right away, you can head on to the embedded systems course page.

What are embedded systems?

Embedded systems are electronic systems designed with special software and hardware to achieve a special purpose. In short, anything that is capable of computing data for a special purpose is an embedded system. By conventional means, your PC and your smartphone are not embedded systems. But the individual components like the Bluetooth module in your phone or the graphic card in your PC are embedded systems. A very common question that arises out of this classification is:

Why are computers and smartphones not considered as embedded systems?

There are many differentiating opinions on this and even I was confused with the conventional textbook classification. The computer that I am using to write this article on is generally defined as a general-purpose computer. By the same token, smartphones are, by and large, considered to be general purpose computers as well. On the other hand, we can use computers for specific purposes too (like a cashier machine), and they can be a part of a larger system.

I found the best answer to my quandary in a blog by Michael Barr, an author of three books on embedded systems who was also the editor-in-chief of the Embedded Systems Design magazine. He is of the opinion that the consumer market is witnessing a blurring in question to the difference between embedded systems and general purpose computers. Moreover, he believes that smartphones have grown to capture the gray area between embedded systems and general purpose computers. He cites the example of the iPhone to demonstrate how resource intensive programming is required to get the best out of the hardware to perform general functions. In conclusion, he is of the opinion that it is okay to classify the smartphone as either, a complex embedded system or a resource-constrained computer. I believe that we can extend the same choice to modern computers as well, depending on how their configuration.

What are the applications of an embedded system?

Embedded systems see applications ranging from your bedroom alarm clock to satellites. Health related devices, wearables, everything that has the word ‘smart’ in their names, drones, automobiles, industrial automation, warehouse automation (machines amazon uses to pack your virtually shopped goodies), and heck even the self lacing shoes from Nike utilize specific embedded systems to work.

What are the industries requirements to be an embedded systems engineer?

The complexity of designing an embedded system depends on a lot of factors, as you’ll experience through the duration of this course. An embedded systems engineer designs the hardware system with the design complexities in mind and writes the code necessary for the working of that system.

Take a look at a couple of job listings from LinkedIn.

Typical job requirement of an Embedded System Developer (Fresher)
Embedded systems typical job requiement
Typical job requirement of an Embedded System Developer (2-3 years of experience)

We will learn all of the above things and some more in this course with practical hands-on experience.

Before starting, it is essential to know the difference between microprocessors, microcontrollers, Arduino and Raspberry Pi.

  • Microprocessor : A microprocessor (or uP) just processes and needs a set of external peripherals like RAM, ROM, serial ports. It uses its pins to connect to these external peripherals. It can offer a higher level of flexibility while designing an embedded system as you can choose your own configurations.
  • Microcontroller : A microcontroller (or uC) has most of the peripherals like RAM, ROM, analog and digital pins in it. You can also extend its functionality if required. They are cheaper and easier to use.
  • Arduino : It is an open source platform made for hobbyists and early learners. Many development boards are designed using this platform. These development boards are basically circuits comprising a microcontroller that can be programmed. And input and output peripherals that allow the user to interact with the outside world.
  • Raspberry Pi : It is a development board with an STM32 processor. You can use it with a monitor, keyboard and mouse and perform basic functions like sending an email etc. Or you can use to to make a robot.

What is the structure of this course?

To understand all the core principles of embedded systems we have a three-part course designed. We are going to start off with the popular Arduino Uno which houses an 8-bit ATmega328. (Check out the course on Arduino Uno here).

The Arduino is a great place to start because you can start making projects right away with really simple coding and see your code interact with the hardware. Additionally, you can gradually step up your projects game while learning basic concepts like ADC, PWM outputs etc.

We will then move onto the 8051 where you will learn all the basics of designing a standalone embedded system from scratch. You will learn interfacing peripherals, power management and get your hands dirty with a lot of coding.

Eventually, in the third and final part of this course we will progress to the Raspberry Pi, which will allow us to work on really powerful 32-bit ARMv7 processors.

What are you going to learn?

In this sub-course we are going to work with Intel’s microcontroller 8051, 80C51 to be precise. Here are all the things you will learn during this course.

  • Interfacing of common peripherals
  • Communication protocols
  • Controlling peripherals
  • C – The dominant language among embedded systems
  • Simulation of an embedded system using Keil
  • Source control using online repositories
  • Creating your own Real Time Operating System (RTOS)