Category: Basics of embedded systems

Profiling of Embedded Code Explained Through Examples!

I remember the time when I first heard the term Profiling, I could barely write source code without googling every 10 minutes at that time and when I heard about profiling, I couldn’t help but tell myself that I will never be able to master programming! Then after a few years I became very comfortable with programming, I came across the term again, but this time I was not scared anymore! So went out and did some research about it and what I found out was shocking, the concept of profiling was not so difficult, it was just another technical...

How to become an Embedded Software Engineer?

When I started out with a goal to become an embedded developer, I had no clue where to even begin as embedded systems cover a wide variety of fields including electronics, software engineering, microcontroller programming, PCB design, networking, chip design, etc., Due to a big knowledge base needed, entering this particular engineering field can seem daunting.  If you are reading this article, then you are probably looking for directions and some sort of a plan to develop the skills needed to get into this field of making embedded systems. By the end of this article hopefully, you will know where...

How to read microcontroller datasheets? 5 tips for Beginners!

If you are a beginner, the first time you download the datasheet of the microcontroller you are using, you will be given a 1000 to 2000 page document, which will make you feel uncomfortable, to say the least. I have been through the same experience and in this post, I am going to help you understand the reason behind the hugeness of the datasheet and I will give you some tips and tricks so that you don’t waste too much time reading it! So let’s begin! The reason behind the hugeness The manufacturers of microcontrollers need to explain its capabilities,...

FreeRTOS, A Complete Beginners Guide

When I started out learning about FreeRTOS, I was not able to find good short resources to read, and hence I had to spend weeks reading a 400 page eBook, see a bunch of webinars and videos, then cross-reference to some other resources when concepts were not clear, before I was finally able to understand what FreeRTOS is, how it works and how to use it in applications. So I decided to write this guide to summarise all the information I have learned over my research in an easy to understand manner so that you can get started with FreeRTOS...

How to Detect, Debug and Prevent Stack-Overflow!

Today I ran into my very first stack overflow bug. It was a frustrating experience to find the actual bug as I had to go through all of my code and double-check the logic, buffers, pretty much my entire code before I was finally able to detect that the bug I got was due to stack overflow. But once I managed to find out the fact that the source of my problem is stack overflow, the fix was a pretty easy one. This is one of those bugs that will make you doubt pretty much everything you know..! I am...

What is an IMU Sensor? A Complete Guide for Beginners!

When I heard the term IMU for the first time, I thought it was some cool technology that is beyond my understanding. But once I got some experience playing with it, and got to understand what it physically measures that fear vanished quickly. In this post, I have tried to explain what IMU sensors are, how they work and where and how to use these sensors keeping beginners in mind. So let’s begin. What is an IMU sensor? IMU stands for Inertial Motion Unit. An IMU sensor is a combination of an accelerometer and a gyroscope sensor. It is used...

timer

Microcontroller Timers, Their Types and Applications

Timers play an important role in embedded systems, their duty, of course, is to maintain timing for operations, be it controlling the blinking rate of the LEDs or controlling the sampling rate of the ADCs, or a simple delay on the source code.  Beginners to this field tend to have some trouble understanding the basics of what timers are, what are clock ticks and clock frequencies and why there are so many timer types in a microcontroller. I have written this post keeping beginners in mind, so if you are familiar with some topics you can feel free to skip...

soldering

What Does an Embedded Hardware Engineer do?

As a person working in embedded industry, a typical question that I come across frequently from people outside the industry is what do embedded hardware engineers do. So I have written this post to address that question. What do Embedded Hardware engineers do? The main duties of embedded hardware engineers include selection of components, designing PCBs, Designing and performing hardware tests, making custom testing tools, designing other related hardware needed like test benches and product casing, and a writing a little bit of production software.  Let’s take a closer look at the above mentioned activities in the coming sections and...

programming

What does an Embedded Software Engineer do?

I am working as an embedded software engineer and I have often been asked this question of what does embedded software engineers do. I am writing this article to explain what we do, how we do it, varieties of embedded software, skills needed to do develop each kind, types of companies you get to work for and other relevant details you might find interesting to give you an insiders look into this profession.  What does an embedded software engineer do? Embedded software engineers develop software that runs on devices like microwave ovens, Xbox controllers, Blood pressure monitors, Bluetooth headphones, smartwatches,...

Bootloader And Stages of Booting Process Explained!

During the early days in my career as an embedded software engineer, I was hearing the term ‘bootloader’ very often. Even though I had a basic understanding of the term, I felt that my knowledge about it is incomplete. For example, when they say the system is ‘booting up’ I knew it meant the system is getting ready for the user to start using its applications, but how exactly is it ‘getting ready’? As days passed by, I read some books, used some development boards, read some forums and with all that my knowledge of bootloader improved to a stage...