Theory

Memory Leak - Analysis and Detection Strategies

The first thing that comes to mind when we talk about dynamic memory and leaks is Valgrind. You may also be familiar with static analysis tools, such as Coverity. It could be DevPartner or Boundschecker or many such tools that I won’t dare attempt to list here. But what if...

My approach to the Mesh Flare Problem (IIT-B's Techfest)

Over the past few days, I received a plethora of emails and messages on how to make a line follower robot. Mostly, the specification being white line on a black surface. Some even mentioned shortest path detection loops in the track. Now, I do get emails in which people ask...

External Event Counter - Seven Segment Displays

External event counters are pretty useful things to have around. Once I had a feud with a shopkeeper for selling 4 motors in 3 different RPMs. Well, I don’t know if you have ever tried making a robot that had wheels rotating at different speeds, I did. It wasn’t a...

Microcontroller Input voltage Measurement through ADC Module

Input voltage measurement of an embedded device is not as simple as it sounds. But if estimated, can come in very handy in a number of occasions. In this article we will see how we can add this feature to your embedded system with minimal components. It is one thing...

Basics of DC Motor Drive and Speed Control for Robots

DC motors are really cheap and can be found very easily. In this post we will discuss the basic theory behind the DC motor drive system and its speed control. Having some basic understanding of how your motor driver works will play a key role in building your own circuits...

Implementing Circular Buffer in C

Embedded software often involves state machines, circular buffers and queues. This article will give you an overview of the data structure and walks you through the steps involved in implementing circular buffers in low memory devices. If you are already familiar with the basics of such data structures, feel free...

Interrupt On Change (IOC) in PIC Microcontrollers

The interrupt on change is a cool feature on microcontrollers. Like you guessed, the interrupt occurs when there is a state change in any of the port pin associated with this feature. In PIC microcontrollers, PORT B has the Interrupt on Change feature. The controller jumps into the interrupt vector...

Interface 4x4 Matrix Keypad With Microcontroller

In this post we will discuss logic and interface of a matrix keypad (4x4 for this post) with microcontroller to reduce the number of port pins required to read a certain number of inputs (digital). The same logic applies to any matrix keypad of order NxN. Where, N is the...

Interface 7 Segment Display with Microcontroller

The 7 segment display is widely used to display numeric data. They are limited by the number of segments (LEDs) they have and hence are not suitable for displaying text. There are some variants of this kind of displays that have 11 segments which enables them to display text also....

Stepper Motor Interface with PIC Microcontroller

In my previous post Introduction to Stepper Motors and How they Work, we had a look at stepper motors and how they work. This post will deal with the programming and circuitry involved in the stepper motor interface with PIC microcontroller. Usually a microcontroller is used to produce the stepping...

How-to: Make a Chassis For Your Robot

Ready made chassis that are available in the market (like the one above) are really good, cheap and for all you know they might have been subjected to an R&D before fabrication. In spite of all these advantages I still see the following issues with ready made chassis. They are...

Shortest Path Line Follower Robot Logic Revealed!

Bored of the conventional line follower? People nearly are losing interest? Here is a post that could change it all and turn the winds to your side. Imagine if your robot was to start from node A (source) and move to node B (destination) and come back to node A!...

Line Follower Robot - Build it from scratch

Line Follower Robots are the most common type of robots that are built by hobbyist and students interested in robotics and embedded systems. The reason for the popularity of the Line Follower robot is the fact that it is simple to build and it is easy to understand the logic...

Timer/Counter Module - A Controller Independent Guide

In this post I intend to provide a standalone, controller independent, Guide to Timer / Counter Module in Microcontrollers. The concepts explained are not associated with any one particular controller which might not be useful for all readers. To an extent this is an independent post but little exposure to...

I2C Protocol (2-Wire Interface) in a nut shell

The I2C protocol also known as the two wire interface is a simple serial communication protocol that uses just two pins of a microcontroller namely SCL (serial clock) and SDA (serial data). This is a very popular protocol that can be used to address a large number of slave devices...